Dudas con SQL aplicado en Visual Basic

Soy principiante en Visual Basic.
Te explicare lo más breve que pueda el objetivo de mi programa.
Trabajo en una agencia nissan, entonces quiero hacer una consulta del inventario de refacciones, en mi base de datos (tabla) tengo los siguientes campos, Numero de Parte(Campo Parte), Descripción, etc., quiero que al momento de escribir en un Text el numero de parte se muestren en un listbox los numero de parte que coincidan con dicho numero, pero me da un error 3131 error de sintaxis en la clausula FROM
este es el código:
Private Sub TxtParte_Change()
Dim Dato As String
Dim Consulta_SQL As String
Dim Resultado As String
Dim Contador As Integer, Total_encontrado As Integer
Dim Relacion As String
Contador = 0
Total_encontrado = 0
LstBusqueda = Visible
LstBusqueda.Clear
Dato = TxtParte
Consulta_SQL = "SELECT * FROM Inventario" + _
"WHERE Parte LIKE'" _
+ Dato + "*' ORDER BY Parte;"
Aquí es donde me señala el error
Set Partes = Agenda.OpenRecordset(Consulta_SQL, _
dbOpenDynaset)
If Total_encontrado > 1 Then
LstBusqueda.ToolTipText = "Haga Clic En Alguna De Las Partes"
Else
LstBusqueda.ToolTipText = "No Se Encontro Ningún Registro Con Ese Número de Parte."
End If
Do
If Partes.AbsolutePosition > -1 Then
LstBusqueda.AddItem (Partes("Parte"))
Contador = Contador + 1
Partes.MoveNext
End If
Loop Until Contador >= Total_encontrado
Relacion = "SELECT * " _
+ "FROM Inventario" _
+ "Where Parte = '" _
+ Dato + "´"
Set Partes = Agenda.OpenRecordset(Relacion, _
dbOpenDynaset)
Total_encontrado = Partes.RecordCount
Partes.MoveFirst
Actualiza_Campos
End Sub
Por último porque no me permite escribir más de un carácter en el Text si quiero escribir por ejemplo 15208 al momento que escribo el 1 se ejecuta la instrucción y yo lo que quiero es que me permita teclear más números y si por ejemplo escribo 24 me muestre en el ListBox los que tengan 24 al principio y si escribo 242 igual me muestre los números de parte que coincidan con ese nuevo criterio

1 respuesta

Respuesta
1
Veamos primero lo de la GUI. Generalmente en mis aplicaciones espero a que el usuario termine de teclear el datos y luego le coloco un botón para que se ejecute la consulta. Fíjate si colocas la consulta cada vez que el usuario cambie el textBox esta ejecutando dicha consulta "n" veces.. entonces imaginate si tienes varios usuarios y una base de datos remota..! Uff el pobre manejador de BD se va a caer..
Ahora con respecto a la consulta en si y si el campo Parte es alfanumérico seria algo como
Consulta_SQL = "SELECT * FROM Inventario" + _
"WHERE Parte LIKE '" _
+ Dato + "*' ORDER BY Parte"
Cuidado con los apostrofes y las comillas. Lo más fácil es que hagas la consulta en Access y la llames desde VB usando el objeto QueryDef de DAO. Otra pregunta ¿Por qué no estas usando ADO?
Gracias por la respuesta, en lo que respecta al uso de ADO sera que no lo uso por los mismo que estoy empezando a utilizar Visual Basic, y no lo he intentado, por lo que me comentas puede ser más fácil intentar hacer lo que quiero mediante esa opción.
Gracias
VB 6 tiene gran facilidad para el manejo de datos sobre todo con ADO. Te recomiendo la version enterprise de VB 6, el cual trae ademas de todo el soporte para ADO el MSDN, en cula puedes conseguir ejemplos a todos los niveles del uso del ADO y los nuevos diseñadores que trae VB 6

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas