Suma con sql

12/04/2006 - 00:17 por Fabian | Informe spam
Hola a todos!
Auxilio, una manito con este codigo, solo necesito en label1 la suma del
campo importe de la base de access. El codigo lo ejecuto desde excel, los
registros no es necesario que los vea, gracias por adelantado.

Private Sub ConsultarImporte() 'SQL ADO
Dim Ruta As String
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Fecha As Date
Ruta = ThisWorkbook.Path
Fecha = Hoja1.[d2]
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Ruta & "\BaseViajes.mdb"
.Open
End With
Set rst = New ADODB.Recordset
rst.Open "SELECT SUM(Importe) AS Total FROM Viajes WHERE [FECHA VIAJE] >= '"
& Fecha & "'", cnn, , , adCmdText
userform1.label1 = rst.Source
rst.Close
cnn.Close
End Sub
 

Leer las respuestas

#1 Héctor Miguel
12/04/2006 - 09:52 | Informe spam
hola, Fabian !

... solo necesito en label1 la suma del campo importe de la base de access.
El codigo lo ejecuto desde excel, los registros no es necesario que los vea [...]



[solo] comentarios acerca de [posibles] situaciones 'de error' en el codigo que expones...

1) la asignacion del valor en el label1 del formulario [al final de cuentas] tienes que establecerla +/- como sigue:
Userform1.Label1 = rst.Fields("Total").Value

2) ANTES... si la tabla que estas consultando en la '.mdb' se llama 'Viajes'... [probablemente]...
sera necesario 'completar' su referencia en la fucion suma de la instruccion 'select' [+/- como sigue]...
rst.Open "SELECT SUM(Viajes.Importe) AS Total FROM .. etc.

3) ANTES... si la variable 'Fecha' la estas 'tomando/asignando/...' DIRECTAMENTE de la celda 'D2' de la 'Hoja1' <= CodeName
a) considera que VBA ES US-Centric [por lo tanto]... las fechas SON en formato mm/dd/aaaa
b) podria haber 'incompatibilidades' con el formato [orden] de fechas de la configuracion regional del equipo donde se ejecute la macro -?-
c) [tambien] es necesario 'conocer' [+/- exactamente] 'como' y cual es el tipo de datos [y orden de fechas] del campo [FECHA VIAJE] en la .mdb
es decir... como 'espera' dicho campo [en la base de datos]... que le 'preguntes' las fechas para efectuar el 'filtrado' :))
[p.e. "dd/mm/aaaa hh:mm:ss am/pm" ?... es campo de fechas ?... es campo de texto ?... ???]

es probable que intervengan otros -posibles- 'factores'... asi que...
comentas [si hubiera] algun detalle adicional ?
saludos,
hector.

___ el codigo expuesto ___
Private Sub ConsultarImporte() 'SQL ADO
Dim Ruta As String
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Fecha As Date
Ruta = ThisWorkbook.Path
Fecha = Hoja1.[d2]
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Ruta & "\BaseViajes.mdb"
.Open
End With
Set rst = New ADODB.Recordset
rst.Open "SELECT SUM(Importe) AS Total FROM Viajes WHERE [FECHA VIAJE] >= '" & Fecha & "'", cnn, , , adCmdText
userform1.label1 = rst.Source
rst.Close
cnn.Close
End Sub

Preguntas similares