QueryDefs

Te pregunté como enviar parámetros a un QueryDef desde VB y usando DAO, me dijiste lo siguiente:
Tienes que declararte una variable del tipo QueryDef, esta tiene una propiedad Parameters() que tendrá tantas posiciones como parámetros quieras...
Cuando los hayas rellenado todos, solo tienes que abrir el recordset.
rst = QueryDef.OpenRecordset
y ya ta...
Muy bien, pero como soy un poco torpe, no se aplicarlo, te agradecería inmensamente un pequeño ejemplo donde viera lo que dices traducido a código.

1 Respuesta

Respuesta
1
Iba a mandarte un ejemplo mio, pero en he visto uno que va con la base de datos BIBLIO.MDB que se instala junto con VB, así que mejor te doy este, para que lo puedas probar...
Un saludo.
'Create QueryDef "by date"
Dim Db As Database
Dim Qd As QueryDef
Set Db = OpenDatabase("C:\VB\BIBLIO.MDB") ' Old
Set Db = DBEngine(0).OpenDatabase("C:\VB4-32\BIBLIO.MDB") ' New
Set Qd = Db.CreateQueryDef("By date") 'Create the query "By date"
QdText = "PARAMETERS dp Short; "
QdText = QdText & "SELECT * from Titles WHERE [Year Published] = dp"
Qd.SQL = QdText
Print Qd.SQL
Qd.Close
' Create Snapshot from QueryDef
Dim Rs As Snapshot ' Old
Set Qd = Db.OpenQueryDef("By Date") ' Old
Dim Rs As Recordset ' New
Set Qd = Db.QueryDefs("By Date") ' New
Qd!dp = 1991 'Set the value of the dp parameter
Set Rs = Qd.CreateSnapshot() ' Old
Set Rs = Qd.OpenRecordset(dbOpenSnapshot) ' New
Do Until Rs.EOF
For i = 1 To Rs.Fields.Count - 1
Print Rs(i); 'Display results of query
Next
Print
Rs. MoveNext
Loop
Rs. Close
Qd. Close
Db. Close
El ejemplo que me envías, usa una consulta que has creado previamente, yo lo que quiero es usar una que ya este en mi fichero MDB y que no la tenga que crear desde VB antes de utilizarla, y por supuesto que le pueda pasar parámetros
Gracias
El proceso es el mismo
dim qd as queryDef
dim rs as recordset
set qs = database.querydefs("myQuery")
q.Parameters(1) = "pepe"
q.Parameters(2) = "10"
set rs = qs.execute

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas