Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/01/2009, 15:55
sapocativa
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
problema con una consulta a una base access desde visual basic 6

estoy armando una aplicación con VB6 es una ficha que contiene datos de pacientes, y otras cosas como la fecha de hoy (se ve en lblFechaActual.caption)
también hay un "cmdHistorial", al clickearlo se debe mostrar el historial de vacunación del paciente en un nuevo formulario con un flexgrid. Armo una consulta a la BBDD Access para que me filtre por paciente y (aqui empieza el problema) muestre los registros con fecha anterior a hoy (historial) ya que la tabla contiene también pedidos pendientes a futuro. Si armo la consulta así:

"Select * From Transaccion where IdPaciente = " & Form1.txtIDPaciente.Text & " and FechaAplicacion < #04/01/2009# order by FechaAplicacion "

anda perfecto, pero yo necesito que tome la fecha actual de una variable o del label.
Si la armo así:

"Select * From Transaccion where IdPaciente = " & Form1.txtIDPaciente.Text & " and FechaAplicacion < " & lblFechaActual.Caption& " order by FechaAplicacion "

me muestra el grid pero vacío, si declaro una variable, me da que no coinciden los datos, se que estoy cometiendo una burrada en el uso de signos, comillas o algo así, les pongo el código del formload completo (una de las formas que probé)

Private Sub Form_Load()
MSFGHistorialVacunacion.ColWidth(0) = 950
MSFGHistorialVacunacion.ColWidth(1) = 3050
MSFGHistorialVacunacion.ColWidth(2) = 3050
MSFGHistorialVacunacion.ColWidth(3) = 3050
MSFGHistorialVacunacion.ColWidth(4) = 3050
MSFGHistorialVacunacion.TextMatrix(0, 0) = "Fecha"
MSFGHistorialVacunacion.TextMatrix(0, 1) = "Vacuna1"
MSFGHistorialVacunacion.TextMatrix(0, 2) = "Vacuna2"
MSFGHistorialVacunacion.TextMatrix(0, 3) = "Vacuna3"
MSFGHistorialVacunacion.TextMatrix(0, 4) = "Vacuna4"

Dim varhoy As Date
varhoy = Format$(Date, "dd/mm/yyyy")
Dim i As Integer
Dim bd As ADODB.Connection
Dim reg As ADODB.Recordset
Set bd = New ADODB.Connection
Set reg = New ADODB.Recordset
bd.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;" & _
"data source= C:\Megadatos\master.mdb"

bd.Open
reg.Open "Select * From Transaccion where IdPaciente = " & Form1.txtIDPaciente.Text & " and FechaAplicacion < '$varhoy$' order by FechaAplicacion ", bd
i = 1
While Not reg.EOF
MSFGHistorialVacunacion.TextMatrix(i, 0) = reg!FechaAplicacion
MSFGHistorialVacunacion.TextMatrix(i, 1) = reg!Vacuna1
MSFGHistorialVacunacion.TextMatrix(i, 2) = reg!Vacuna2
MSFGHistorialVacunacion.TextMatrix(i, 3) = reg!Vacuna3
MSFGHistorialVacunacion.TextMatrix(i, 4) = reg!Vacuna4
i = i + 1
reg.MoveNext
MSFGHistorialVacunacion.Rows = MSFGHistorialVacunacion.Rows + 1
Wend
reg.Close
bd.Close

End Sub


Espero que se entienda y alguien pueda ayudarme, desde ya, muchas gracias