La Web del Programador: Comunidad de Programadores
 
    Pregunta:  33415 - CONSULTA SQL
Autor:  Daniel Jesús Rodriguez Perez
A continuacion os envio el código de una consulta SQL, me gustaria saber que es lo que hago mal ya que dicha consulta me da error en la supuesta base de datos ; en mi opinion creo que el error esta en intentar utilizar una variable como comparación ("nombre"), es que mi idea es realizar la busqueda segun el nombre que halla introducido el usuario previamente en un textbox, espero que me podais ayudar de todas formas muchisimas gracias, y un voto por la página.....

Dim recselect As Recordset
Dim strSQL As String
Dim nombre As String
Private Const Cinemages_Path = "C:\WINDOWS\Escritorio\Proyecto Cinemages v.1.01\bdcinemages97(4).mdb"
Private Sub Command1_Click()
On Error GoTo errores

Data1.DatabaseName = Cinemages_Path
Data1.Refresh
Set dbcinemages = DBEngine.Workspaces(0).OpenDatabase(Cinemages_Path)
nombre = Text1.Text

strSQL = "SELECT [Nombre cliente],[Código Cliente]FROM [Tabla Clientes]WHERE [Nombre cliente]= nombre ORDER BY [Nombre cliente]"
Set recselect = dbcinemages.OpenRecordset(strSQL, dbOpenSnapshot)

If recselect.RecordCount > 0 Then
recselect.MoveFirst
Do Until recselect.EOF
List1.AddItem recselect!Nombre_cliente & ":" & recselect!Código_Cliente
recselect.MoveNext
Loop
End If
Exit Sub
errores:
MsgBox Err.Description, vbCritical
End Sub

  Respuesta:  Marco A. Zamudio
Al parecer tu codigo está bien, el unico error que encuentro, es que no pones comillas en la variable de comparacion en el sql, quedaría de esta manera:

strSQL = "SELECT [Nombre cliente],[Código Cliente]FROM [Tabla Clientes] WHERE [Nombre cliente]=& " ' " & nombre &" ' " ORDER BY [Nombre cliente]"

Si tienes alguna duda, mandame un mail, con gusto te ayudaré