SQL Parametros sin valores

12/09/2008 - 03:56 por Fabian | Informe spam
La semana pasada Hector me respondio una consulta con un codigo casi
calcado de Este que muestro aqui, solo cambia el metodo en el WHERE,
despues de cuatro horas de no poder con El, pido ayuda, el mensaje de
error es en la linea del recodset, con el siguiente mensaje:
""""No se han especificado valores para algunos de los parametros
requeridos.""""
Gracias.
Sub CargarAutoForm1()
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim strSQL As String
Dim Ruta As String
Dim Lista As String
Application.EnableEvents = False
Ruta = ThisWorkbook.Path
Lista = UserForm1.ListBox1.Text
With Cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Ruta & "\Base.mdb"
.Open
End With
strSQL = "SELECT * FROM Compras WHERE Nombre= " & Lista & ""
Rst.Open Source:=strSQL, ActiveConnection:=Cnn,
CursorType:=adOpenKeyset, LockType:=adLockOptimistic '''LINEA DEL ERROR
With UserForm1
.TextBox1 = Rst!Nombre
.TextBox2 = Rst!Direccion
.TextBox3 = Rst![Codigo Postal]
'''''' ETC >>
End With
Rst.Close: Set Rst = Nothing
Cnn.Close: Set Cnn = Nothing
Application.EnableEvents = True
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/09/2008 - 04:39 | Informe spam
hola, Fabian !

La semana pasada Hector me respondio una consulta con un codigo casi calcado de Este que muestro aqui
solo cambia el metodo en el WHERE, despues de cuatro horas de no poder con El, pido ayuda
el mensaje de error es en la linea del recodset, con el siguiente mensaje:
""""No se han especificado valores para algunos de los parametros requeridos.""""



(creo que) habria que determinar cual codigo es una "calca" de cual otro (asumiendo que el "original" SI funciona ?) :))
prueba haciendo una ligera modificacion a solamente una linea (a ver si ves la diferencia)... ;)

de: -> strSQL = "SELECT * FROM Compras WHERE Nombre= " & Lista & ""
a: -> strSQL = "SELECT * FROM Compras WHERE Nombre = " & Lista & ";"

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub CargarAutoForm1()
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim strSQL As String
Dim Ruta As String
Dim Lista As String
Application.EnableEvents = False
Ruta = ThisWorkbook.Path
Lista = UserForm1.ListBox1.Text
With Cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Ruta & "\Base.mdb"
.Open
End With
strSQL = "SELECT * FROM Compras WHERE Nombre= " & Lista & ""
Rst.Open Source:=strSQL, ActiveConnection:=Cnn, CursorType:=adOpenKeyset, LockType:=adLockOptimistic '''LINEA DEL ERROR
With UserForm1
.TextBox1 = Rst!Nombre
.TextBox2 = Rst!Direccion
.TextBox3 = Rst![Codigo Postal]
'''''' ETC >>
End With
Rst.Close: Set Rst = Nothing
Cnn.Close: Set Cnn = Nothing
Application.EnableEvents = True
End Sub
Respuesta Responder a este mensaje
#2 Fabian
12/09/2008 - 06:14 | Informe spam
Gracias...! Veo lo sutil de la diferencia... lo corregi... pero sigue
con el mismo error... en la linea que le sigue esta en el post
anterior, Saludos y Gracias.

a: -> strSQL = "SELECT * FROM Compras WHERE Nombre = " & Lista & ";"
strSQL = "SELECT * FROM Compras WHERE Nombre = " & Lista & ";"
Rst.Open Source:=strSQL, ActiveConnection:=Cnn,
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
Respuesta Responder a este mensaje
#3 Héctor Miguel
12/09/2008 - 06:45 | Informe spam
hola, Fabian !

Gracias...! Veo lo sutil de la diferencia... lo corregi... pero sigue con el mismo error...
en la linea que le sigue esta en el post anterior, Saludos y Gracias.

a: -> strSQL = "SELECT * FROM Compras WHERE Nombre = " & Lista & ";"
strSQL = "SELECT * FROM Compras WHERE Nombre = " & Lista & ";"
Rst.Open Source:=strSQL, ActiveConnection:=Cnn, CursorType:=adOpenKeyset, LockType:=adLockOptimistic



si no recuerdo mal, +/- desde 2006 vienes "batallando" este tipo de detalles con las consultas y la forma de abrir los Rst -?-
asumo que estas buscando filtrar por campos de texto (Lista = UserForm1.ListBox1.Text)
y es posible que debas incluir un apostrofo (') (o un acento frances `) para delimitar la variable "Lista" -?-
y/o incluir el caracter de "mas lo que siga" (%) para completar la sentencia del filtro en la consulta -?-

prueba modificando/complementando/... la declaracion de la variable strSQL con alguna de las siguientes variantes:

op1: -> strSQL = "SELECT * FROM Compras WHERE Nombre = '" & Lista & "';"

op2: -> strSQL = "SELECT * FROM Compras WHERE Nombre = `" & Lista & "`;"

op3: -> strSQL = "SELECT * FROM Compras WHERE Nombre = `" & Lista & "%`;"

o alguna combinacion (intermedia) de las anteriores ?

comentas (si encuentras) alguna otro comportamiento si cambias los cursores de la consulta ?
(p.e. los adOpenKeySet, adLockOptimistic, etc. de acuerdo con los comentarios de 2006) ?

saludos,
hector.
Respuesta Responder a este mensaje
#4 Fabian
12/09/2008 - 12:40 | Informe spam
Como siempre tenes la solucion gracias...!
Me olvide de las comillas, las puse en otros campos, pero alli no...!
ahora funciona.
Respuesta Responder a este mensaje
#5 Héctor Miguel
12/09/2008 - 14:19 | Informe spam
hola, Fabian !

Me olvide de las comillas, las puse en otros campos, pero alli no...!
ahora funciona.



gracias por "el regreso" (y el feed-back) ;)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida