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

Preguntas similare

Leer las respuestas

#6 Fabian
15/04/2006 - 01:08 | Informe spam
Trate de armar algo en ADO similar a unas consultas que hice con la
grabadora, pero tengo el mismo problema que con la suma, no puedo descargar
los datos, en este caso en un DataList. Gracias por tu tiempo. Saludos!

Private Sub TextBox1_Change()
Dim Ruta As String
Dim Cnn As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim Letras As String
DataList1=""
Ruta = ThisWorkbook.Path
Letras= TextBox1
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 DISTINCT Viajes.Titular FROM Viajes WHERE Viajes.Titular
Like '" & Letras & "%' ORDER BY Viajes.Titular", Cnn, , , adCmdText
Set DataList1.RowSource = Rst.DataSource
DataList1.DataField = Rst.Fields("Titular")

Rst.Close: Set Rst = Nothing
Cnn.Close: Set Cnn = Nothing

End Sub
#7 Fabian
15/04/2006 - 01:16 | Informe spam
Me falto agregar ??
Set DataList1.RowSource = Adodc1
#8 Héctor Miguel
15/04/2006 - 05:20 | Informe spam
hola, Fabian !

Mostrar la cita
no tengo 'idea' de las propiedades y metodos de objetos de versiones 'developer' o VB [stand-alone] como los 'DataList' :-((
[sin embargo]... si te sirve como pruebas... puedes 'bajar' a un rango el objeto 'recordset' y 'subirlo' [p.e.] a un control 'ListBox' [normal] :D
-> requiere de excel 2000 o superior [pero igual un control 'DataList' tambien requiere que su libreria de objetos este instalada] ;)
el siguiente ejemplo supone una 'hoja2' [que incluso puedes mantener 'oculta'] donde se baja el recordset para subirlo al listbox :))

en lugar de las instrucciones finales de tu codigo [donde utilizas el 'DataList']...
Mostrar la cita
y usa las siguientes [suponiendo que en tu formulario has incrustado un control 'ListBox1']...
With Worksheets("hoja2").Range("a1")
.CopyFromRecordset Rst
ListBox1.List = .CurrentRegion.Value
.CurrentRegion.ClearContents
End With

si cuaquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Mostrar la cita
#9 Fabian
15/04/2006 - 17:37 | Informe spam
La version que estoy usando es 2002 y el DataList es 6.0 (OLEDB). sp3
Si compatible con la consuta, eso te lo dejo a vos, que sos el maestro!
Gracias por la solucion y el codigo.
Saludos!
Ads by Google
Search Busqueda sugerida