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

No consigo Buscar un registro en una db Access

Estas en el tema de No consigo Buscar un registro en una db Access en el foro de Visual Basic clásico en Foros del Web. Hola. Acabo de conocer el foro y me parece que esta muy bien. Por eso he decidido registrame y asi preguntar las dudas que me ...
  #1 (permalink)  
Antiguo 20/02/2010, 07:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
No consigo Buscar un registro en una db Access

Hola. Acabo de conocer el foro y me parece que esta muy bien. Por eso he decidido registrame y asi preguntar las dudas que me vayan surgiendo.

Estoy creando un programa en VB6.0 que trabaja con una tabla de una base de datos. Lo que quiero hacer es que al pulsar un boton me aparezca un inputbox que me pregunte el dato de uno de los cambos de la tabla de la base de datos, que abra un formulario y que me muestre el dato introducido en un textbox en el formulario que acaba de abrirse.

He conseguido llegar (Soy muy novato, esta es mi primera vez haciendo algo asi) hasta pulsar el boton y que me pregunte que dato quiero buscar en la tabla, pero luego ya no se como seguir, he buscado por el foro y no encuentro nada que sea parecido y que me pueda servir. En el formulario que se abre tengo metido un control ado y un data grid, y funcionan, osea que en el data grid me salen todos los registros de la tabla, pero yo no quiero que se vea eso, lo ocultare, solo quiero que al meter una referencia en el inputbox, me busque esa referencia en el campo CodigoArancelario de la tabla de la base de datos y me lo muestre en un texbox. Creo que si me ayudan con eso podria intentar buscar luego yo solo otro dato en la misma tabla y poder asi cargar una imagen jpg que se encuentra en un directorio.

La idea es meter la referencia, que es el codigo arancelario de la tabla, que tiene asociado un codigo y que me cargue una imagen que tiene el nombre de ese codigo. Hasta ahora yo tenia que saber el codigo de la imagen, pero es mucho mas facil hacerlo con la referencia, por eso quiero conseguir esto. Si necesitan mas datos por favor diganmelo.
  #2 (permalink)  
Antiguo 20/02/2010, 23:47
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: No consigo Buscar un registro en una db Access

Considera el siguiente ejemplo:


Tu botón para consultar tendría lo siguiente:

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.        Dim consulta as Integer
  3.        Adodc1.Refresh
  4.        consulta=InputBox("INGRESE LA CODIGO ARANCELARIO: ")    
  5.        Adodc1.Recordset.Filter = "codigoArancelario = " & consulta
  6.    End Sub

Entonces en el datagrid constara la información del registro que coincidió y sino puedes el grid querdará en blanco, y el resto es lo mismo pues puedes realizar diferentes filtros con los diferentes campos.
__________________
En programación hay mil y un formas de hacer lo mismo...

Última edición por fradve; 21/02/2010 a las 09:15
  #3 (permalink)  
Antiguo 21/02/2010, 05:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

Vale muchas gracias. Voy a intentarlo a ver si lo consigo y te cuento.


He probado y al ejecutar me dice: Error '424' en tiempo de ejecucion. Se requiere un objeto.

Si le doy a depurar me sale marcado en amarillo la linea: Adodc1.Refresh

Porque puede ser?. Esa linea lo que hace es pedir al control data que actualice los datos que coje no? Y el nombre de adodc1 es exactamente igual que el que tengo yo.

Última edición por 41b3r70; 21/02/2010 a las 05:49
  #4 (permalink)  
Antiguo 21/02/2010, 09:14
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: No consigo Buscar un registro en una db Access

postea el code que tienes a ver que es lo que sucede, ya que ese error solo se suscita si el objeto en cuestion no existe
__________________
En programación hay mil y un formas de hacer lo mismo...
  #5 (permalink)  
Antiguo 21/02/2010, 09:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

Este es el codigo del boton que esta en el formulario inicio y que es el que abre el formulario que contiene el data control.

Private Sub B_VisorDePlanos_Click()
VisorDePlanos.Show

Dim consulta As Integer
Adodc1.Refresh
consulta = InputBox("Referencia: ")
Adodc1.Recordset.Filter = "CodigoArancelario = " & consulta

y este el del formulario visor de planos que solo tiene un boton para volver al formulario inico, el data control y el data grid.

Private Sub BotonVolverDeVisorDePlanos_Click(Index As Integer)
inicio.Show
Unload VisorDePlanos
End Sub

A lo mejor es que el boton que hace la cosulta debe estar en el formulario visor de planos y no en el de inico y por eso no encuentra el objeto... no se.

Muchas gracias por tomarte la molestia de ayudarme. Te lo agradezco de veras. Se que son dudas muy basicas pero estoy empezando y me lio muy a menudo.
  #6 (permalink)  
Antiguo 21/02/2010, 20:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 15 años
Puntos: 7
Respuesta: No consigo Buscar un registro en una db Access

Que tipo de dato es tu campo CodigoArancelario?
Si es numerico utiliza

Código:
Adodc1.Recordset.Filter = "CodigoArancelario='" & consulta & "'"
Si es de texto prueba asi

Código:
Adodc1.Recordset.Filter = "CodigoArancelario=" & consulta & ""
  #7 (permalink)  
Antiguo 21/02/2010, 23:18
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: No consigo Buscar un registro en una db Access

Si es de texto necesitas los apostrofes pero si es númerico no, ahi te da error. El ejemplo coloque asumiendo que el campo es numérico.

Y para el problema de dices:

la información que maneja el ADO del form de inicio es diferente a la información que maneja el ADO del form de Visor de Planos.

Si la información que se supone muestras en el datagrid es la del ADO del form de Visor de planos, entonces debes añadir un botón más que te diga buscar, además de una caja de texto para que ingreses el valor de la búsqueda y listo con eso ya debería funcionarte.
__________________
En programación hay mil y un formas de hacer lo mismo...
  #8 (permalink)  
Antiguo 22/02/2010, 15:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

Pues creo que va a ser ese el problema. En el formulario de inicio solo tengo el boton que abre el form del visor de planos. Y en ese mismo boton que te digo (El del form inicio) es donde le meto el codigo que me pones. Y claro, como en ese formulario no hay data control, porque esta en el de visor de planos por eso no me funciona.
  #9 (permalink)  
Antiguo 22/02/2010, 18:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 15 años
Puntos: 7
Respuesta: No consigo Buscar un registro en una db Access

Por eso te dice que el objeto no existe.
Prueba asi
Form2.Adodc1.Recordset.Filter = "CodigoArancelario=" & consulta & ""

Logicamente debes haber cargado el Adodc1 por que si no tampoco correra.
El fallo esta en tu diseño como quieres utilizar algo que todavia no has cargado, no se como hayas tu programa, ademas no has puesto nada de codigo ni explicado que quieres extamente, ahora mencionas que hay otro formulario en fin explica mejor y coloca el codigo por que has mencionado el ·control data" y adodc control es otra cosa.
  #10 (permalink)  
Antiguo 24/02/2010, 17:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

Muchas gracias a los dos. Ya he conseguido hacerlo. Como no encontraba el fallo decidi borrar lo que tenia y empezar desde 0. He seguido el procedimiento que viene descrito en un libro que hay por la red y ha ido perfecto.

Ahora me surge el problema de como poder cargar una imagen en un picturebox. Intentare explicarme bien.

Tengo el codigo articulo de mi base de datos metida en un textbox y quiero cargar una imagen que esta asociada al codigo articulo. Esta imagen no tiene ninguna referencia en la base de datos pero conozco su ruta. Os cuento:

Supongamos 2 piezas:

A/001 con codigo articulo 12341
Su ruta seria asi: C:\[CodigoArticulo]\plano\[CodigoArticulo].jpg osea C:\12341\plano\12341.jpg

A/002 con codigo articulo 12342
Su ruta seria asi: C:\[CodigoArticulo]\plano\[CodigoArticulo].jpg osea C:\12342\plano\12342.jpg

Como puedo hacer para que me cargue esas rutas sabiendo que la parte de la ruta que contiene el codigo articulo no es siempre la misma, sino que esta determinada por el codigo articulo que me aparece en el texbox???

He conseguido cargar una imagen con una ruta fija del tipo C:\Imagen.jpg, y se que tendria que crear una variable para el codigoarticulo pero no se como tendria que escribirlo correctamente.
He probado con esto pero me error.

Txt_CodigoArticulo.Text = CodigoArticulo
CodigoArticulo = CInt(Txt_CodigoArticulo.Text)
Img_Vistaprevia.LoadPicture ("C:\Documents and Settings\Alberto\Escritorio\" & CStr(Txt_CodigoArticulo.Text) & ".jpg")

Muchas gracias por dedicar vuestro tiempo a gente que esta empezando como yo.
  #11 (permalink)  
Antiguo 25/02/2010, 00:46
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: No consigo Buscar un registro en una db Access

Revisa la asignación de la imagen al picturebox, porque hasta donde yo sé, se lo hace de esta manera:

pbxPicture.Picture = LoadPicture("C:\" & Txt_CodigoArticulo.Text & "\plano\" & Txt_CodigoArticulo.Text & ".jpg")

Con eso ya te debe de funcionar, a no ser que la imagen no sea un jpg. Comentas los resultados...
__________________
En programación hay mil y un formas de hacer lo mismo...
  #12 (permalink)  
Antiguo 25/02/2010, 10:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

En una palabra: PERFECTO!!!!

Solo que al principio no me ha funcionado por que tenia el evento colocado cuando hacia click en el boton buscar, y no iba. Logicamente no iba por que el cuadro de texto todavia no se habia llenado. Asi que lo he colocado en el evento change del cuadro de texto y a la primera. Muchas gracias de verdad. Te estoy realmente agradecido por la ayuda que me has prestado y la paciencia que has tenido.


Voy a seguir completando la aplicacion con mas cositas para seguir aprendiendo.
  #13 (permalink)  
Antiguo 27/02/2010, 07:59
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

Ya tengo terminada la aplicacion. Solo me queda solucionar el tema de que cuando la ruta que te comento mas arriba no exista no me de un error y se caiga la aplicacion. Cuando la ruta existe no hay problema carga la imagen sin mas, pero cuando no existe el archivo .jpg o no existe la carpeta planos me da error. Como lo puedo solucionar? Creo que me entenderas, si no dimelo y me intentare explicar de otra manera. Gracias.
  #14 (permalink)  
Antiguo 27/02/2010, 08:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

De momento lo he solucionado poniendo en el codigo que me carga la imagen

On error resume next

pero me gustaria que cargara una imagen donde ponga plano no encontrado.
  #15 (permalink)  
Antiguo 27/02/2010, 08:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No consigo Buscar un registro en una db Access

Vale, ya lo he solucionado. He prbado esto y ha funcionado. Lo pongo por si le sirve a alguien novato como yo.

Private Sub Txt_CodigoArticulo_Change() ´Cuando el textbox cambie...
On Error GoTo NoImagen ´Si hay un error saltar a....

Img_Vistaprevia = LoadPicture("C:\" & Txt_CodigoArticulo.Text & "\plano\" & Txt_CodigoArticulo.Text & ".jpg") 'Esto carga la imagen
Exit Sub
NoImagen: Img_Vistaprevia = LoadPicture("C:\Error.jpg")
End Sub


Gracias jejeje ya van saliendo cositas.

Etiquetas: access, registro
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:56.