Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ayuda sobre un recordset

7 views
Skip to first unread message

Juanan

unread,
May 20, 1998, 3:00:00 AM5/20/98
to

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.

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.


Skar

unread,
May 20, 1998, 3:00:00 AM5/20/98
to

Aqui va la respuesta:

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>...

Fermin Bernaus Berraondo

unread,
May 20, 1998, 3:00:00 AM5/20/98
to

On Wed, 20 May 1998 13:26:36 +0200, Juanan <jmo...@gva.es> wrote:

>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

Daniel Cardona

unread,
May 21, 1998, 3:00:00 AM5/21/98
to

Te falta el tipo de recordset que quieres crear.
Para lo que quieres hacer te irá bien con dbOpenDynaset
Así tendrás que escribir:
0 new messages