Buscar por coincidencia con vb 2005 en base datos acce

Mi pregunta es como hacer para que mientras escribo en un texbox en otro seballan mostrando los registros que coincidan en la base de datos access con lo que esta en el texbox por favor ayudame ya que solo encuentro ejemplos para el sql

1 Respuesta

Respuesta
1
Tienes que hacer una búsqueda de registros y utilizar en el where un LIKE %loquequierobuscar% para poder llenar la lista de los que va encontrando
Perdona experto pero de casualidad no tienes un ejemplo para poder guiarme debido a que ya lo intente con lo que propones pero me genera un error. Gracias
¿Qué error te arroja? ¿Y cuál es elc odigo que estas utilizando?
Public Class Form1
'location 11; 89
Private dtt As DataTable
Private daa As OleDb.OleDbDataAdapter
Private fila As Integer
Const direccion = "D:\JOBY\VISUAL\Visual 2008\Proyecto Consolidado Aviso\1008\Avisos2.mdb"
'Dim fff As String
Dim varfecha As String
Dim veri2 As Integer
Dim veri3 As Integer
Dim veri4 As Integer
Dim veri5 As Integer
Dim veri6 As Integer
Dim veri7 As Integer
Private iniciando As Boolean = True
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'comprobar si la base existe
Try
If System.IO.File.Exists(direccion) = False Then
MessageBox.Show("No existe la base de datos indicada")
Exit Sub
End If
Finally
End Try
' La cadena de conexi¢n
Dim Cadena As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & direccion
' La cadena de selecci¢n
Dim Seleccion As String = "SELECT * FROM aviso where (Nombre Movil)"
' Crear un nuevo objeto del tipo DataAdapter
'Dim cnn As New OleDbConnection(sCnn)
daa = New OleDb.OleDbDataAdapter(Seleccion, Cadena)
' Crear los comandos de insertar, actualizar y eliminar
Dim cb As New OleDb.OleDbCommandBuilder(daa)
' Como hay campos con caracteres especiales,
' al usarlos incluirlos entre corchetes.
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"
' Asignar los comandos al DataAdapter
daa.UpdateCommand = cb.GetUpdateCommand
daa.InsertCommand = cb.GetInsertCommand
daa.DeleteCommand = cb.GetDeleteCommand
'
' Esta base de datos usa el ID es autonumerico
daa.MissingSchemaAction = MissingSchemaAction.AddWithKey
dtt = New DataTable
'Llenar la tabla con los datos indicados
daa.Fill(dtt)
varfecha = fecha.Value
datosClientes.DataSource = dtt
iniciando = False
End Sub
Private Sub Archivar_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Archivar.Click
If (MsgBox("¨Esta Seguro de Guardar los Datos?", MsgBoxStyle.Question + vbYesNo) = vbYes) Then
' Crear un nuevo registro
Dim dr As DataRow = dtt.NewRow()
' Asignar los datos de los textbox a la fila
GuardarDatos(dr)
' A¤adir la nueva fila a la tabla
dtt.Rows.Add(dr)
' Guardar f¡sicamente los datos en la base
Try
daa.Update(dtt)
dtt.AcceptChanges()
' Si es el primer registro de la base,
' volver a leer los datos para actualizar los IDs
If CInt("0" & dr("ID").ToString) = 0 Then
dtt = New DataTable
daa.Fill(dtt)
End If
' Posicionarlo en la £ltima fila
fila_Anterior_Click(Nothing, Nothing)
Catch ex As DBConcurrencyException
MessageBox.Show("Error de concurrencia:" & vbCrLf & ex.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
Exit Sub
End If
End Sub
Private Sub GuardarDatos(ByVal dr As DataRow)
' Guardar los datos en la base Access
dr("Nombre Movil") = TextBox1.Text
dr("Numero Consolidado") = TextBox2.Text
dr("Numero Aviso") = TextBox3.Text
dr("Numero Orden Sap") = TextBox4.Text
dr("Inicio") = TextBox5.Text
dr("fecha") = varfecha
dr("fin") = TextBox6.Text
H = 0
H = H + 1
dr("10003 ACOPLADOR DC-12 EXTERNO AMP") = dato(H)
H = H + 1
dr("10004 ACOPLADOR DIRECCIONAL 16DB (EXTERNO)") = dato(H)
H = H + 1
dr("10005 ACOPLADOR DIRECCIONAL 7DB (SSP-7)") = dato(H)
H = H + 1
dr("10006 ACOPLADOR DIRECCIONAL 8DB ( EXTERNO)") = dato(H)
H = H + 1
dr("10018 ADAPTADOR F-FEMALE A KS (FF-KS)") = dato(H)
H = H + 1
dr("10033 BATERIA 12V 80 A/H PARA FUENTE ALPHA") = dato(H)
H = H + 1
dr("10037 BREACKER 20 AMP 120V") = dato(H)
H = H + 1
dr("10038 CABLE COAXIAL RG-11 CON MENSAJERO") = dato(H)
H = H + 1
dr("10070 CINTA BANDIT ACERADA DE 1/2") = dato(H)
H = H + 1
dr("10074 CODO DE 180 (KS) RED EXTERNA") = dato(H)
H = H + 1
dr("10075 ADAPTADOR DE 90") = dato(H)
H = H + 1
dr("10079 CONECTOR CABLE 500 PIN LARGO") = dato(H)
H = H + 1
dr("10080 CONECTOR CABLE 715 PIN LARGO") = dato(H)
H = H + 1
dr("10081 CONECTOR COMP CABLE RG-11") = dato(H)
H = H + 1
dr("10114 GABINETE PARA FUENTE ALPHA") = dato(H)
H = H + 1
dr("10118 HEBILLA ACERADA 1/2 PARA CINTA BAND IT") = dato(H)
H = H + 1
dr("10123 INSERTOR DE PODER EXTERNO (SSP-PIK)") = dato(H)
H = H + 1
dr("11390 INSERTOR DE PODER EXTERNO fuente") = dato(H)
H = H + 1
dr("10162 SPLITTER 2 VIAS EXTERNO (SSP-3)") = dato(H)
H = H + 1
dr("10164 SPLITTER 3 VIAS EXTERNO (SSP-3-636)") = dato(H)
H = H + 1
dr("10170 STRANDLINK 7/64 PARA CABLE 500") = dato(H)
H = H + 1
dr("10176 TAP 2 VIAS 11 DB BP EXTERNO (FFT2-11)") = dato(H)
H = H + 1
dr("10177 TAP 2 VIAS 14 DB BP EXTERNO (FFT2-14)") = dato(H)
H = H + 1
dr("10178 TAP 2 VIAS 17 DB BP EXTERNO (FFT2-17)") = dato(H)
H = H + 1
dr("10179 TAP 2 VIAS 20 DB BP EXTERNO (FFT2-20)") = dato(H)
H = H + 1
dr("10180 TAP 2 VIAS 23 DB BP EXTERNO (FFT2-23)") = dato(H)
H = H + 1
dr("10182 TAP 2 VIAS 4 DB BP EXTERNO (FFT2-4)") = dato(H)
H = H + 1
dr("10183 TAP 2 VIAS 7 dB BP EXTERNO (FFT2-7)") = dato(H)
H = H + 1
dr("10184 TAP 2 VIAS 8 DB BP EXTERNO (FFT2-8)") = dato(H)
H = H + 1
dr("10186 TAP 4 VIAS 11 DB BP EXTERNO (FFT4-11)") = dato(H)
H = H + 1
dr("10187 TAP 4 VIAS 14 DB BP EXTERNO (FFT4-14)") = dato(H)
H = H + 1
dr("10188 TAP 4 VIAS 17 DB BP EXTERNO (FFT4-17)") = dato(H)
H = H + 1
dr("10189 TAP 4 VIAS 20 DB BP EXTERNO (FFT4-20)") = dato(H)
H = H + 1
dr("10190 TAP 4 VIAS 23 dB BP EXTERNO (FFT4-23)") = dato(H)
H = H + 1
dr("10193 TAP 4 VIAS 8 DB BP EXTERNO (FFT4-8)") = dato(H)
H = H + 1
dr("10195 TAP 8 VIAS 11 DB BP EXTERNO (FFT8-11)") = dato(H)
H = H + 1
dr("10196 TAP 8 VIAS 14 DB BP EXTERNO (FFT8-14)") = dato(H)
H = H + 1
dr("10197 TAP 8 VIAS 17 DB BP EXTERNO (FFT8-17)") = dato(H)
H = H + 1
dr("10198 TAP 8 VIAS 20 DB EXTERNO") = dato(H)
H = H + 1
dr("10199 TAP 8 VIAS 23 DB BP EXTERNO (FFT8-23)") = dato(H)
H = H + 1
dr("10232 TUBO TERMOENCOGIBLE (PARA 500)") = dato(H)
H = H + 1
dr("10235 UNION MACHO KS-KS (DOBLE MACHO)") = dato(H)
H = H + 1
dr("10912 AMARRES LARGO 30 CM BLANCO") = dato(H)
H = H + 1
dr("11176 PERROS METALICOS DE 1/4") = dato(H)
H = H + 1
dr("11344 CABLE ENCAUCHETADO 3X12") = dato(H)
H = H + 1
dr("11537 AMPLIFICADOR PCT LE36/86B42") = dato(H)
H = H + 1
dr("11586 CANDADO ANTICISAYA 70 MM") = dato(H)
H = H + 1
dr("11946 CONECTOR DOBLE HEMBRA 500") = dato(H)
H = H + 1
dr("12870 FUSIBLE DE 15 AMP") = dato(H)
H = H + 1
dr("12881 MARQUILLA TELMEX AZUL") = dato(H)
H = H + 1
dr("12923 SPLITTER INTERNO AMPLIFICADOR MB/550") = dato(H)
H = H + 1
dr("12927 VARILLA COUPER WELL") = dato(H)
H = H + 1
dr("13370 ASEGURAMIENTO AEREO LE 550 CON GUAYA") = dato(H)
H = H + 1
dr("13372 HERRAJE PARA AMPLIFICADOR BT Y NODO AERE") = dato(H)
H = H + 1
dr("13435 CONECTOR PI 11 B") = dato(H)
H = 0
End Sub
Private Sub fila_Anterior_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs)
' Posicionarse en la £ltima fila
fila = dtt.Rows.Count - 1
' Mostrar los datos de la fila indicada
'mostrarDatos(fila)
End Sub
Private Sub form1_closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
'se ejecuta antes de cerrar el form
If (MsgBox("¨Esta Seguro de Salir de la Aplicacion?", MsgBoxStyle.Question + vbYesNo) = vbYes) Then
End
Else
e.Cancel = True
End If
End Sub
Private Sub Salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Salir.Click
Me.Close()
End Sub
Private Sub yamado2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yamado2.Click
Me.Enabled = False
Form2.Show()
End Sub
Private Sub fecha_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fecha.ValueChanged
'guarda la fecha
varfecha = fecha.Value
End Sub
Private Sub txtApellidos_TextChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles txtApellidos.TextChanged
If iniciando Then Exit Sub
' Buscar en el DataTable usando el m,todo Select
' que es como un filtro WHERE en una cadena de selecci¢n.
' El resultado se devuelve como un array de tipo DataRow
Dim filas() As DataRow
' Aqu¡ es donde hay que hacer el filtro de c¢mo buscar
' Usando % ... % no se tiene en cuenta d¢nde est  el apellido escrito
' (puede ser el primero o el segundo)
' Si escribes "s" se buscar n todos los que contengan esa letra.
filas = dtt.Select("Apellidos LIKE '%" & txtApellidos.Text & "%'")
' Si solo quieres mostrar los que empiecen por lo escrito.
' Al escribir "s" se buscar n los que empiecen por esa letra.
'filas = dt.Select("Apellidos LIKE '" & txtApellidos.Text & "%'")
' Borrar los elementos anteriores
Me.listaApellidos.Items.Clear()
' Si hay datos, mostrar los apellidos
If filas.Length > 0 Then
' Recorrer cada fila y mostrar los apellidos
For Each dr As DataRow In filas
'Me.listaApellidos.Items.Add(dr("Apellidos").ToString)
' Tambi,n puedes mostrar cualquier otro campo,
' pero siempre que est, en la cadena de selecci¢n
' usada al cargar los datos
Me.listaApellidos.Items.Add( _
dr("Apellidos").ToString & ", " & _
dr("Nombre").ToString)
Next
End If
End Sub
Private Sub listaApellidos_SelectedIndexChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles listaApellidos.SelectedIndexChanged
'Exit Sub
If iniciando Then Exit Sub
' Al hacer clic, mostrar el dato
Me.txtApellidos.Text = Me.listaApellidos.SelectedItem.ToString
' Buscarlo en el DataGridView (de forma manual, no conozco otra forma...)
' Eliminar las selecciones anteriores
Me.datosClientes.ClearSelection()
' Recorrer las filas para buscar el Apellido indicado
For Each fila As DataGridViewRow In Me.datosClientes.Rows
' Si es el mismo apellido del textBox
' Curiosamente si no son los mismos datos
' se produce un error de que d.Cells(...) es Nothing
' En realidad de "curioso" no tiene nada,
' es que es la £ltima fila, que est  vac¡a...
If fila.Cells("Apellidos").Value Is Nothing _
OrElse fila.Cells Is Nothing Then
Continue For
End If
'Dim s As String = fila.Cells("Apellidos").Value.ToString
'If String.IsNullOrEmpty(s) = False Then
' If s = Me.txtApellidos.Text Then
' ' Seleccionamos la fila
' Me.datosClientes.Rows(fila.Index).Selected = True
' ' nos aseguramos de que sea visible
' Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
' Exit For
' End If
'End If
'' Si se quiere buscar con los datos exactos
'If Me.txtApellidos.Text = fila.Cells("Apellidos").Value.ToString Then
' ' Seleccionamos la fila
' Me.datosClientes.Rows(fila.Index).Selected = True
' ' nos aseguramos de que sea visible
' Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
' Exit For
'End If
'' Aqu¡ se hace la comprobaci¢n de que empiece con los apellidos
'' de esta forma, podemos mostrar Apellidos, Nombre
'' Pero mostrar  el primero que coincida
'If Me.txtApellidos.Text.StartsWith(fila.Cells("Apellidos").Value.ToString) Then
' ' Seleccionamos la fila
' Me.datosClientes.Rows(fila.Index).Selected = True
' ' nos aseguramos de que sea visible
' Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
' Exit For
'End If
' Si se quiere tener en cuenta el nombre y los apellidos
Dim i As Integer = Me.txtApellidos.Text.IndexOf(",")
If i > -1 Then
' En este ejemplo, el formato es Apellidos, Nombre
Dim nombre, apellidos As String
apellidos = Me.txtApellidos.Text.Substring(0, i).TrimEnd()
nombre = Me.txtApellidos.Text.Substring(i + 1).TrimStart()
If nombre = fila.Cells("Nombre").Value.ToString _
AndAlso apellidos = fila.Cells("Apellidos").Value.ToString Then
' Seleccionamos la fila
Me.datosClientes.Rows(fila.Index).Selected = True
' nos aseguramos de que sea visible
Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
Exit For
End If
Else
If Me.txtApellidos.Text = fila.Cells("Apellidos").Value.ToString Then
' Seleccionamos la fila
Me.datosClientes.Rows(fila.Index).Selected = True
' nos aseguramos de que sea visible
Me.datosClientes.FirstDisplayedScrollingRowIndex = fila.Index
Exit For
End If
End If
Next
End Sub
End Class
Lo anterior es código y no logro cargar los dtos para buscarlos
¿En qué linea exactamente te da el error y cual es el mesaje de error?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas