Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

problema con una consulta a una base access desde visual basic 6

Estas en el tema de problema con una consulta a una base access desde visual basic 6 en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/01/2009, 15:55
 
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
  #2 (permalink)  
Antiguo 04/01/2009, 17:54
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
Respuesta: problema con una consulta a una base access desde visual basic 6

Es un trabajo para la facultad, o que?

Por que es el segundo post que leo que necesitan hacer algo parecido con pacientes y vacunas...

http://www.forosdelweb.com/f69/probl...on-sql-658973/


EDITO: Si es asi, por favor ponganse las pilas asi no van a ser buenos profesionales
  #3 (permalink)  
Antiguo 04/01/2009, 18:10
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: problema con una consulta a una base access desde visual basic 6

Tio no recuerdo bien pero tambien me paso, creo que tu error esta aquí
De este modo te funciona
FechaAplicacion < #04/01/2009#

Pero lo que haces con este codigo
FechaAplicacion < " & lblFechaActual.Caption & "

es esto
FechaAplicacion < 04/01/2009

Es decir te faltan los # por eso no te devuelve nada la consulta
  #4 (permalink)  
Antiguo 04/01/2009, 20:47
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con una consulta a una base access desde visual basic 6

si está dos veces pido disculpas, escribí y cuando hice clic en enviar post me mostró un error como si hubiera caducado la sesió, tuve que reloguearme y tuve que escribir de nuevo porque no vi que hubiera subido lo anterior. No es una tarea para la facu, es un problema real que debo resolver. Gracias y disculpas de nuevo
  #5 (permalink)  
Antiguo 04/01/2009, 20:55
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: problema con una consulta a una base access desde visual basic 6

pulp se referia a un post creado por un usuario llamado gasafonso que es similar a lo que preguntas pero nada tiene que ver solo coincidencia, te sirvio la ayuda?

saludos
  #6 (permalink)  
Antiguo 05/01/2009, 05:46
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con una consulta a una base access desde visual basic 6

Hola franko, luego vi que se trataba de otro tema, yo estoy tratando de ayudar a gente que necesita manejar de una manera algo mas práctica los datos del trabajo que realiza y no tiene medios económicos. Respecto de la falta de los # en la expresión, coincido en que viene por ahí, anoche cuando vi tu rta, hice algunas prubas, poniendo de diferentes maneras, pero se ve que no doy con la combinación adecuada, tal vez me pudieras contar como redactarías vos esa partecita de la consulta. La otra es manejar la fecha actual como una variable, pero taaaampoco se muy bien con que simbolitos meterla en la consulta y me da error de tipo de datos. Muchas gracias de nuevo.
  #7 (permalink)  
Antiguo 05/01/2009, 11:06
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: problema con una consulta a una base access desde visual basic 6

Cita:
Iniciado por sapocativa Ver Mensaje
Hola franko, luego vi que se trataba de otro tema, yo estoy tratando de ayudar a gente que necesita manejar de una manera algo mas práctica los datos del trabajo que realiza y no tiene medios económicos. Respecto de la falta de los # en la expresión, coincido en que viene por ahí, anoche cuando vi tu rta, hice algunas prubas, poniendo de diferentes maneras, pero se ve que no doy con la combinación adecuada, tal vez me pudieras contar como redactarías vos esa partecita de la consulta. La otra es manejar la fecha actual como una variable, pero taaaampoco se muy bien con que simbolitos meterla en la consulta y me da error de tipo de datos. Muchas gracias de nuevo.
Hola, intenta poniendo la consulta así:

"Select * From Transaccion where IdPaciente = " & Form1.txtIDPaciente.Text & " and FechaAplicacion < #" & Format(Date, "dd/mm/yyyy") & "# order by FechaAplicacion "

Suponemos que el campo IdPaciente es de tipo numérico.

Verifica los resultados, porque es posible que tengas que formatear la fecha a formato americano (mm/dd/yyyy).



Me resulta chocante que se requiera información de su respuesta máxime cuando quien lo requiere acostumbra a no responder cuando se le contesta.

Eh aquí los ejemplos mas recientes (de los últimos tres días):

http://www.forosdelweb.com/f69/poner...b6-0-a-658685/

http://www.forosdelweb.com/f69/ocult...b6-0-a-658681/

http://www.forosdelweb.com/f69/mante...b6-0-a-658352/
  #8 (permalink)  
Antiguo 05/01/2009, 12:23
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: problema con una consulta a una base access desde visual basic 6

Tio ya te resolvieron la duda por ejemplo si en tu lblFechaActual.Caption el formato esta
asi "lunes 5 de enero" no puedes pasar ese formato como parametro en la consulta ya que solo acepta
este formtao 05/01/2008 por eso se utiliza la funcion format

#" & Format(Date, "dd/mm/yyyy") & "#

Cita:
Iniciado por Avellaneda Ver Mensaje
Me resulta chocante que se requiera información de su respuesta máxime cuando quien lo requiere acostumbra a no responder cuando se le contesta.
Las respuestas me solucionaron el problema, pero queria agregar unas duda que tenia, por eso no respondi

mis saludos mas chocantes
  #9 (permalink)  
Antiguo 06/01/2009, 05:49
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con una consulta a una base access desde visual basic 6

hola, recién en la madrugada de hoy pude probar y logré resolverlo, probé poner literal la sugerencia de Franko y Avellaneda y me incluía en el listado pedidos pendientes para el 08/01/2009, pero me filtraba si ponía un pedido para mas allá del 01/06/2009 por lo que deduje que en algún lado estaba tomando la fecha en formato americano como también me planteaban que pudiera estar pasando, así que probé poner:

"Select * From Transaccion where IdPaciente = " & Form1.txtIDPaciente.Text & " and FechaAplicacion < #" & Format(Date, "mm/dd/yyyy") & "# order by FechaAplicacion "

y anduvo perfecto por fín, muchas gracias

Última edición por sapocativa; 06/01/2009 a las 10:57
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.