SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: palmiro en Jueves 17 de Abril de 2003, 06:27
-
Hola quisiera saber como llenar un dbgrid usando código y no usando un data control. En el código que quiero usar deseo poner algo que me actualice el dbgrid con lo datos de la consulta que obtiene datos de un dtpicker. Es algo más o menos como esto :
Set mibase = Workspaces(0).OpenDatabase(App.Path & "biblio.mdb")
Set puntero = mibase.OpenRecordset("prestamomaterial", dbOpenTable)
SQL = "select codigo, nombrematerial, serie, estado, nombre, apellidos, curso, fechaprestamo from prestamomaterial where fechadevolucion = '" & DTPicker1.Value & "'"
y todo esto en el dbgrid.
P.D. : Se puede usar un data control pero al decir el databasename no colocar una direccion estatica si no algo como (App.Path & "biblio.mdb"), pero que ademas me reconozca el recordsource el las propiedades del data control.
Gracias.
-
Bueno, creo que tú lo que quieres es definir las propiedades del Data de forma que puedas actualizarlas en tiempo de ejecución. Pues simplemente haces esto:
Data1.Visible = False
SQL = "Select............
Data1.DatabaseName = App.Path & "biblio.mdb"
Data1.RecordSource = SQL
Data1.Refresh
(TE SOBRAN LAS INSTRUCCIONES set mibase Y set puntero)
Saludos y suerte
-
Me dice ese mensaje en la línea del data1.refresh.
Ahora estoy usando lo data control con el recordsource y databasename definidos en el cuadro de propiedades y el siguiente codigo :
paso = dtpicker1.value
SQL = "select codigo, nombrematerial, serie, nombre, apellidos, curso, fechaprestamo from prestamomaterial where fechadevolucion = '" & paso & "'"
Data1.RecordSource = SQL
Data1.Refresh
Me puedes decir que falta o que esta fallando.
Gracias.
-
Está claro que lo que falla es la definición de la fecha, cuyo formato no reconoce la SQL.
Prueba con
paso = DateValue(""" & DTPicker1 & """)
quitando las comillas simples de la SQL
...where fechadevolucion = " & paso
y espero que se te solucione. Ya me tendrás informado.
Saludos y suerte
-
La verdad es que no me resulto, y comprobé que es el problema de la fecha.
En la BD la fecha esta como shotdate y mascará 99-99-0000;0;_, todos los datos se ingresan con dtpicker y se visualizan en el dbgrid de la forma dd-mm-aaaa, e intentado la consulta poniendo el valor con valores de dtpicker, con maskedit, textbox, pero no me reconoce ni siquiera de tu forma (definí paso como date y como string pero me dice en esa línea que no coinciden los tipos). Que podría hacer, cambiar la forma de definición en la bd, u otra cosa. Como podría hacer para que el valor que me da en la BD en fechadevolucion fuera compatible con el que estoy introduciendo y pudira comparlo.:oops:
-
Esperemos que viendo cómo tienes definida la variable de fecha, con tu database a la vista, podamos solucionar este error.
Saludos
-
Habida cuenta de que el caso se ha resuelto vía e-mail y que se han tocado temas de interés general, creo conveniente publicar las soluciones:
Primero: El tema de la fecha queda así:
SQL1 = "select * from prestamolibros where fechadevolucion = DateValue(""" & DTPicker1 & """)"
Segundo: Me planteó también el poder seleccionar los registros que en un campo tipo memo (de nombre "estado") contuvieran una determinada palabra o frase. Esta es la solución:
SQL1 = "select * from libros where estado like '*" & Text1.Text & "*'", con asterisco por delante y por detrás.
Tercera: ¡¡¡ATENCIÓN!!! El mismo filtro en un DataEnvironment para conformar un Data Report no surtía efecto (o daba error, no recuerdo) y se solucionó de esta guisa:
SQL = "Select * From Libros Where Instr(estado,'" & Text1.Text & "')"
Esta tercera solución creo que es muy interesante, a pesar de que su uso no vaya a ser muy frecuente.
Saludos a todos