Access - Problemas con el sql embebido en Visual Basic

 
Vista:

Problemas con el sql embebido en Visual Basic

Publicado por Jordi (16 intervenciones) el 30/05/2001 19:11:41
Hola que tal
Estoy haciendo una consulta con DAO, que no me funcciona:
la consulta en sql es la siguiente:
SELECT CapRegistre.NIFCIF, CapRegistre.EstatRegistre
FROM CapRegistre
WHERE (((CapRegistre.NIFCIF)=[Formularios]![frm_altaprod]![CodiProd]) AND ((CapRegistre.EstatRegistre)=1));
Y cuando la paso a sql embebido en Visual Basic (con la ayuda de una utilidad que lo hace)me queda así:

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()

Dim strSQl As String
strSQl = "SELECT CapRegistre.NIFCIF" & vbCrLf
strSQl = strSQl & " , CapRegistre.EstatRegistre" & vbCrLf
strSQl = strSQl & " FROM CapRegistre" & vbCrLf
strSQl = strSQl & " WHERE (((CapRegistre.NIFCIF)=[Formularios]![frm_altaprod]![CodiProd]) " & vbCrLf
strSQl = strSQl & " AND ((CapRegistre.EstatRegistre)=1));"

Set rs = db.OpenRecordset(strSQl)

rs.Close
db.Close

Pues bien cuando se da el procedimiento de evento que dispara la consulta, me da el error 3061 "Pocos parametros, se esperaba 1, y al depurar se queda en la linia de código Set rs= db:OpenRecorset(strSQl)
No se lo que esta pasando pues la consulta funciona perfectamente con SQL.
Agradezco cualquier orientación, pues no le veo la solución.
Muchas gracias
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:Problemas con el sql embebido en Visual Basic

Publicado por Jorge Omar Ceyca Castro (8 intervenciones) el 01/06/2001 01:37:53
Posible Repuesta!!!

1
2
3
4
5
6
7
8
9
10
11
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
 
Dim strSQl As String
strSQl = "SELECT NIFCIF, EstatRegistre FROM CapRegistre  WHERE  NIFCIF=[Formularios]![frm_altaprod]![CodiProd]  AND EstatRegistre=1"
 
Set rs = db.OpenRecordset(strSQl)
 
rs.Close
db.Close

Si no funciona talves esta en [Formularios]![frm_altaprod]![CodiProd] que no lo esta reconociendo entonces usa ? y alimenta al query con el parametro de [Formularios]![frm_altaprod]![CodiProd] existe una instruccion para alimentar al query cuando tiene ? pero no recuerdo cual ahorita... suerte.
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

RE:Problemas con el sql embebido en Visual Basic

Publicado por Jordi (16 intervenciones) el 06/06/2001 09:40:38
Hola, muchas gracias por la contesta. he tardado a contestar por que he probado diferentes métodos pero el que me ha funcionado mejor ha sido el siguiente:
En el evento después de actualizar del cuadro combinado "CB1" que esta en el "formulario1" donde quiero comprovar pongo:
Call RunFuncion

I en un módulo pongo la función:

Sub RunFuncion()

Dim db As DATABASE
Dim qd As QueryDef
Dim rs As Recordset
Set db = DBEngine.Workspaces(0).Databases(0)
Set qd = db.QueryDefs("Consulta1")
****En esta consulta fijo los criterios que quiero comprovar


'*** Aquí pongo los parametros a la consulta, que los coje des
qd![Forms!formulario1] = Forms![formulario1]![CB1]

Set rs = qd.OpenRecordset

rs.MoveLast
MsgBox "Record count " & CStr(rs.RecordCount)
***en este punto puedo contar o sacar información del recordset
rs.Close

qd.Close

End Sub

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