• Viernes 8 de Noviembre de 2024, 19:58

Autor Tema:  Re: Acceso a registros de BDD  (Leído 1562 veces)

olarrere

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Acceso a registros de BDD
« en: Lunes 5 de Mayo de 2003, 17:47 »
0
Hola, estoy intentando acceder a registros de una BDD access y los veo bien, pero al tratar de acceder a uno en particular no lo consigo y siempre rescato el primero o el último depediendo de lo que indique en el comando move...(first,last,etc), a pesar de indicar otra cosa en la clave de búsqueda

   NumRut = Val(Combo1.Text)
   Buscar = "rut='" & NumRut & "'"
   Data2.Refresh
   Data2.Recordset.MoveLast
   Data2.Recordset.FindFirst Buscar

¿Que estoy haciendo mal?, ¿Que falta? o ¿Que no se puede hacer?. Gracias

angelescj

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Acceso a registros de BDD
« Respuesta #1 en: Lunes 5 de Mayo de 2003, 18:08 »
0
Si el campo "rut" es de tipo numérico en la BDD deberías quitar las comillas:

NumRut = Val(Combo1.Text)
Buscar = "rut=" & NumRut
Data2.Refresh
'La siguiente línea de código no es necasaria
Data2.Recordset.MoveLast
Data2.Recordset.FindFirst Buscar
'También debes comprobar si la búsqueda encontró algo:
If Data2.RecordSet.NoMatch Then
    No encontró nada
End If


:suerte:

olarrere

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Acceso a registros de BDD
« Respuesta #2 en: Lunes 5 de Mayo de 2003, 21:08 »
0
:flower:
La clave "rut" es una variable tipo string, por eso va entre comillas, voy a probar quitando la línea que me indicas. La sentencia NoMatch la utilizo y siempre acusa que encuentra registro, el problema es que lo encontrado no es lo requerido. Después te cuento como me está llendo.

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Acceso a registros de BDD
« Respuesta #3 en: Martes 6 de Mayo de 2003, 01:23 »
0
Yo empleo las búsquedas habitualmente así:

Buscar = "rut like '" & NumRut & "'"
Data2.Recordset.FindFirst (Buscar)
If Data2.Recordset.NoMatch Then
MsgBox("No se encuentra el dato que se buscaba")
Exit Sub
End If

A ver si a la tercera va la vencida, a pesar de que veo bien los anteriores métodos...  Saludos

olarrere

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Acceso a registros de BDD
« Respuesta #4 en: Martes 6 de Mayo de 2003, 15:06 »
0
Hola, de acuerdo a lo que me indicó angelescj probé del siguiente modo,
   
   Dim NumRut As String
   Dim Buscar As String
   NumRut = Val(Combo1.Text)
   Buscar = "rut='" & NumRut & "'"
   Data2.Refresh
   Data2.Recordset.FindFirst Buscar
   If Data2.Recordset.NoMatch Then
      MsgBox ("No encuentra registro")
   Else
*      Label4 = tabla1("nombre")    
   End If

* Sin embargo, la ejecución se detiene en esta línea y un mensaje me indica "no existe registro activo" y evidentemente, la sentencia NoMatch es falsa. :question:

angelescj

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Acceso a registros de BDD
« Respuesta #5 en: Martes 6 de Mayo de 2003, 15:45 »
0
En tu mensaje dices que la línea de código  que da error es:
* Label4 = tabla1("nombre")
Mi pregunta es qué es tabla1?. Para acceder al campo debes poner:
Data2.Recordset.Fields("nombre")
o también:
Data2.Recordset.Fields(posicionDel Campo)

:suerte:

olarrere

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Acceso a registros de BDD
« Respuesta #6 en: Martes 6 de Mayo de 2003, 17:45 »
0
OK, me parece que ese es el problema. Lo que ocurre es que estoy referenciando a mi Recordset por el nombre que le asigno al momento de abrirlo, esto es Tabla1 y en realidad debiera usar el objeto DATA del modo que tu me indicas. Voy a probar y luego te cuento.

olarrere

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Acceso a registros de BDD
« Respuesta #7 en: Miércoles 7 de Mayo de 2003, 17:02 »
0
Funcionó....mis agradecimientos para angelescj y a J.M.Movilla. :good:

Un saludo desde Chile