Búsqueda

Mari
22 de Octubre del 2002
Hola muchachos que tal!
Estoy tratando de hacer una simple búsqueda de datos pero nada que me quiere funcionar; seguramente hay algo que no estoy haciendo bien pero no veo el error. Les agradezco me echen una mano!. Les mando la rutina para que por fa la verifiquen:

Private Sub btnbuscar_Click()
Dim sql As String

nombre.Enabled = True
cedula.Enabled = True
ciudad.Enabled = True
blanquear
If cedula.Text = "" Then
MsgBox "Debe introducir el número de cédula a buscar", vbInformation
cedula.SetFocus
Else
If cedula.Text <> "" Then
datos.MoveFirst
If datos.NoMatch = True Then
MsgBox "No hay nada similar al dato ingresado. Inténtalo con otra cédula", vbInformation
datos.MoveFirst
btnincluir.Enabled = False
btnmodificar.Enabled = False
btneliminar.Enabled = False
btnbuscar.Enabled = True
btnaceptar.Enabled = False
btncancelar.Enabled = True
btnsalir.Enabled = True
Else
If datos.BOF And datos.EOF Then
MsgBox "la base de datos está vacía", vbInformation
datos.MoveFirst
Else
If datos.NoMatch = False Then
sql = "select * from gentio where cedula = '" + cedula + "'"
datos.OpenRecordset
nombre = datos.Fields("nombre")
ciudad = datos.Fields("ciudad")

btnincluir.Enabled = True
btnmodificar.Enabled = True
btneliminar.Enabled = True
btnbuscar.Enabled = True
btnaceptar.Enabled = False
btncancelar.Enabled = False
btnsalir.Enabled = True
End If
End If
End If
End If
End If
End Sub

pimpollete
22 de Octubre del 2002
Hola Mari:
Estaría bien que dijeras los controles que utilizas para poderlo probar en mi PC y así echarte una mano.
Saludos

Marlboro
22 de Octubre del 2002
Mari, en tu rutina no veo ningún
datos.findfirst mas sin embargo veo el datos.NoMatch, en que momento estás realizando la búsqueda?

Bertha
22 de Octubre del 2002
Hola Mari!
espero que te sirva esto: te envio dos ejemplos de como harcer una bùsqueda.

Primera forma: este ejemplo es sobre un recordset que ya tiene datos

'captas en una cadena el dato a buscar
s = Trim(InputBox("Ingrese la identificación del pasajero a buscar:", "El Sistema"))
If s <> "" Then
rsPasajero.Find ("id_pas like '" & s & "*'") 'busca el registro por identificacion del pasajero
pos = rsPasajero.AbsolutePosition 'pos es una variable de tipo integer que capta la posición del registro encontrado
TxtRegistro.Text = pos 'visualiza la posición
End If

Segunda forma:
consulta datos de una base de datos Access 2000 en un recorset en blanco utilizando ADO y las almacena en un combobox.

Dim rsEscuela as Recordset
Dim strconsulta As String
strconsulta = "select nom_esc from escuela order by nom_esc"
Set rsEscuela = New Recordset
With rsEscuela
.Source = strconsulta 'envía sentencia SQL para hacer la consulta
.ActiveConnection = conexion_bd 'variable que contiene la conexion a la base de datos
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
End With
rsEscuela.Open Options:=adCmdText
'carga el dato consultado en un combobox
Set CmbEscuela.DataSource = rsEscuela
CmbEscuela.DataField = rsEscuela.Fields("nom_esc").Name
CmbEscuela.Clear
rsEscuela.MoveFirst
For i = 1 To rsEscuela.RecordCount
CmbEscuela.AddItem CmbEscuela.Text
rsEscuela.MoveNext
Next i


'conexion a la base de datos usuarios con ADO

Sub conexion(clave As String)
Dim strpath As String, s As String
strpath = App.Path & "usuarios.mdb" 'captura el directorio de la aplicacion
'crea la coneccion a la base de datos con el objeto Conexion
Set conexion_bd = New Connection
s = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strpath & ";"
s = s & "Jet OLEDB:Database Password=" & clave & ";"
conexion_bd.ConnectionString = s
conexion_bd.Open
End Sub

muchos saludos! espero que te haya sido de ayuda, escribeme!
Bertha.

Carolina
22 de Octubre del 2002
BUSCA = ""
BUSCA = BUSCA & " select * from ALUMNO WHERE RUT ='" & Ruta & "'"
datos1.Open BUSCA,coneccion, adOpenDynamic, adLockOptimistic
If Not datos1.EOF Then
NOM = datos1("ALU_NOMBRES")
PAT = datos1("ALU_AP_PAT")
MaT = datos1("ALU_AP_MAT")
End If
prueba con eso ojala que te sirva.

Saludos Carolina