Visual Basic - SQL es para el mas preparado en Consulta de sql

Life is soft - evento anual de software empresarial
 
Vista:

SQL es para el mas preparado en Consulta de sql

Publicado por Rod (69 intervenciones) el 12/02/2002 23:34:18
[Microsoft ][ Controlador de ODBC Microsoft Access] Poco parametros, se esperaba 1.
NO SE QUE SIGNIFICA ESTE CODIGO EL error es marcado en donde abro el RECORDSET
ALGO ASI
rs.open

ESTE ES TODO EL CODIGO QUE UTILIZO PARA ESTA CONSULTA
CREO QUE ES UN DESAFIO
Option Explicit
Private cn As ADODB.Connection
Private mrs As ADODB.Recordset

Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.ConnectionString = \"Dsn=basepro;\"
cn.Open
Set mrs = New ADODB.Recordset
mrs.LockType = adLockOptimistic
mrs.CursorType = adOpenKeyset
End Sub
Private Sub CmdAñadir_Click()
Dim Consul As String
\'abrir un recorset vacio
Consul = \"select * \" & _
\"from tinven \" & _
\"where clave01= 0\"
mrs.Source = Consul
Set mrs.ActiveConnection = cn
mrs.Open
mrs.AddNew
mrs.Fields(\"codigo\") = txtCoo.Text
mrs.Fields(\"Unidad\") = txtUnidad.Text
mrs.Fields(\"costo\") = txtCosto.Text
mrs.Update
mrs.Close
cmdLista_Click
End Sub
Private Sub cmdLista_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Source = \"select * \" & _
\"from Tinven \" & _
\"where codigo = clave01 \" & _
\"order by codigo,unidad,costo"
Set rs.ActiveConnection = cn
rs.Open
ListData.Clear
Do While rs.EOF
ListData.AddItem rs.Fields("Codigo") & " " & _
rs.Fields("unidad") & " %
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SQL es para el mas preparado en Consulta de sql

Publicado por alberto (278 intervenciones) el 13/02/2002 09:41:12
Sería suficiente con que especificases en que sentencia se produce el error, que debe ser al abrir un recordset, de todas formas supongamos que la sentencia es:

rs.Source = \"select * \" & _
\"from Tinven \" & _
\"where codigo = clave01 \" & _
\"order by codigo,unidad,costo"
r.open

no se que significan los '\' pero me imagino que no deberían estar, así que los suprimiré, si los campos clave01, y codigo existen en la tabla Tinven, no debería existir problema para abrir dicho recordset, de tal manera que podemos suponer, por ejemplo, que donde pone clave01, debería poner: clavep1, o algo similar, el motor Jet al encontrarse con clave01 detecta que no es un campo existente y lo interpreta como un parámetro, y por lo tanto se presenta dicho error.

No se si eres Raimond, pero el código sigue sin estar completo, pero la contestación es la misma, Suponiendo que el error este en la sentencia anterior, que no tiene por que ser así, sustituye el código original por:

rs.Source = "select * " & _
"from Tinven " & _
"where codigo = clave01 " & _
"order by codigo,unidad,costo"
clipboard.clear
clipboard.settext rs.source
r.open

cuando se produzca el error, con la base de datos que usas en el programa, abierta en Access, crea una nueva consulta y copia el contenido del portapapeles en la pantalla con el codigo Sql de la nueva consulta, si la intentas ejecutar Access te preguntara por el valor que tiene el parámetro, en el caso del ejemplo clave01, y tendrás localizado el campo o lo que sea que esté mal escrito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar