Como no, tengo un problema y se lo quiero plantear a las personas del
grupo.
Trabajo con Access 97. El problema en concreto es que al intentar
abrir un recordset con
OpenRecordset me da un error 3061
que dice : Pocos parámetros. Se esperaba 2.
Lo que tengo escrito en código es lo siguientes.
Private Sub Extracto_Click()
Dim DbAct As Database
Dim QryAct As Recordset
Dim SaldoMem As Double
SaldoMem = 0
Set DbAct = CurrentDb
Set QryAct = DbAct.OpenRecordset("OrdAsien")
With QryAct
.Edit
SaldoMem = SaldoMem + !Imp
!Saldo = SaldoMem
.Update
.Close
End With
DbAct.Close
End Sub
Al depurarlo el error me lo da en la linea del OpenRecordset donde me da
el error
para aclarar OrdAsien es una consulta que esta definida y funciona.
Por si las moscas fuese la consulta OrdAsien hice el OpenRecordset
con un SQL
tal como sigue.
Dim CadSQL As String
CadSQL = "SELECT Asien.DH, Asien.[Imp], Asien.Saldo FROM Asien WHERE
(((Asien.Empr) = [Forms]![EmpActiv]![Empr]) And ((Asien.Cuen) =
[Forms]![C_Plan]![Cuen])) ORDER BY Asien.Fecha, Asien.Napu"
Set DbAct = CurrentDb
Set QryAct = DbAct.OpenRecordset(CadSQL)
Lo cual también me da error.
Lo más seguro que sea elemental, pero estoy atascado.
Se nota mucho que estoy empezando con esto.
Muchas gracias a todos.
Salu2.
Set DbAct = CurrentDb
> Set QryAct = DbAct.OpenRecordset("OrdAsien", dbOpenDynaset)
>
> With QryAct.OpenRecordset
> .Edit
> SaldoMem = SaldoMem + !Imp
> !Saldo = SaldoMem
> .Update
> .Close
> End With
>
> DbAct.Close
--
Saludos,
Skarface
Visitame a www.erols.com/quisbert/ Access y VBA en español
.
Juanan wrote in message <3562BDEC...@gva.es>...
>Hola a todos del grupo.
>
>Como no, tengo un problema y se lo quiero plantear a las personas del
>grupo.
>
> Trabajo con Access 97. El problema en concreto es que al intentar
>abrir un recordset con
>OpenRecordset me da un error 3061
> que dice : Pocos parámetros. Se esperaba 2.
Cuando se abre un recordset por código y ésta hace uso de
parámetros (la tuya hace uso de los valores de los controles del
formulario) debes pasarle esos parámetros por código también. Ya se
que es un rollo, pero en este caso Access pasa olímpicamente de buscar
los parámetros en el formulario. Debes abrir la consulta como QueryDef
en vez de como RecordSet, pasarle los parámetros y entonces abrirlo en
un recordset, tal que:
Private Sub Extracto_Click()
Dim DbAct As Database
Dim QryAct As QueryDef
'Necesitas definir un recordset en el que abrir el query
Dim Cons as Recordset
Dim SaldoMem As Double
SaldoMem = 0
Set DbAct = CurrentDb
Set QryAct = DbAct.OpenQueryDef("OrdAsien")
'Aquí estableces los valores de los parámetros, son dos
'luego los suministras en ese orden
QryAct.parameters(0)=[Forms]![EmpActiv]![Empr]
QryAct.parameters(1)=[Forms]![C_Plan]![Cuen]
'Ahora que ya has pasado los parámetros al querydef, lo abres
'como un dynaset por ejemplo
Set Cons=QryAct.OpenRecordset(DB_OPENDYNASET)
With Cons
.Edit
SaldoMem = SaldoMem + !Imp
!Saldo = SaldoMem
.Update
.Close
End With
DbAct.Close
End Sub
No lo he probado pero creo que es así.
Un saludo.
---
Fermin Bernaus Berraondo
Computer Dept.
SAMMIC, S.A.
Azpeitia (Gipuzkoa)
Spain
E-mail: in...@sammic.com
Web: http://www.sammic.com