OVH Cloud OVH Cloud

Erreur avec Absoluteposition

4 réponses
Avatar
God
Bonjour,

Je programme avec ACCESS en mode DAO

J'ai ouvert un formulaire basé sur une requête contenant les tables immeuble
et contrat

J'exécute ces lignes de code mais j'ai une erreur 3251 Opération non
autorisé sur ce type d'objet sur la ligne x = rs1.AbsolutePosition

Pourquoi ??

Dans la bibliothèque de référence AbsolutePosition est bien associé à
Recordset !

Public Sub test()
Dim DB1 As DAO.Database
Dim rs1 As DAO.Recordset

Set DB1 = CurrentDb()
Set rs1 = DB1.OpenRecordset("compte")

rs1.MoveFirst

x = rs1.AbsolutePosition

End Sub


Merci

4 réponses

Avatar
3stone
Salut,

"God"
| Je programme avec ACCESS en mode DAO
|
| J'ai ouvert un formulaire basé sur une requête contenant les tables immeuble
| et contrat
|
| J'exécute ces lignes de code mais j'ai une erreur 3251 Opération non
| autorisé sur ce type d'objet sur la ligne x = rs1.AbsolutePosition
|
| Pourquoi ??
|
| Dans la bibliothèque de référence AbsolutePosition est bien associé à
| Recordset !
|
| Public Sub test()
| Dim DB1 As DAO.Database
| Dim rs1 As DAO.Recordset
|
| Set DB1 = CurrentDb()
| Set rs1 = DB1.OpenRecordset("compte") ' si tu ouvre directement une table
' tu ne sera pas s^r de l'ordre...


rs1.MoveLast 'pour remplir le recordset...


| rs1.MoveFirst
|
| x = rs1.AbsolutePosition

' ne pas oublier de fermer et libérer...
rs1.close
DB1.close
Set rs1 = Nothing
Set DB1 = Nothing



| End Sub



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
God
AbsolutePosition doit te donner la position du compteur dans une table
Tu peux aussi lui donner une position voulu

Même si tu rempli le recordset avec movelast ca ne change rien....je l'ai
essayé !!


"3stone" a écrit dans le message de news:
%
Salut,

"God"
| Je programme avec ACCESS en mode DAO
|
| J'ai ouvert un formulaire basé sur une requête contenant les tables
immeuble
| et contrat
|
| J'exécute ces lignes de code mais j'ai une erreur 3251 Opération non
| autorisé sur ce type d'objet sur la ligne x = rs1.AbsolutePosition
|
| Pourquoi ??
|
| Dans la bibliothèque de référence AbsolutePosition est bien associé à
| Recordset !
|
| Public Sub test()
| Dim DB1 As DAO.Database
| Dim rs1 As DAO.Recordset
|
| Set DB1 = CurrentDb()
| Set rs1 = DB1.OpenRecordset("compte") ' si tu ouvre directement une
table
' tu ne sera pas
s^r de l'ordre...


rs1.MoveLast 'pour remplir le recordset...


| rs1.MoveFirst
|
| x = rs1.AbsolutePosition

' ne pas oublier de fermer et libérer...
rs1.close
DB1.close
Set rs1 = Nothing
Set DB1 = Nothing



| End Sub



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
God
j'ai trouvé mon erreur !!!


Je dois écrire Set rs1 = DB1.OpenRecordset("compte", dbOpenDynaset)

Si je n'écris pas le dbopendynaset ca ne fonctionne pas !!

Guy


"3stone" a écrit dans le message de news:
%
Salut,

"God"
| Je programme avec ACCESS en mode DAO
|
| J'ai ouvert un formulaire basé sur une requête contenant les tables
immeuble
| et contrat
|
| J'exécute ces lignes de code mais j'ai une erreur 3251 Opération non
| autorisé sur ce type d'objet sur la ligne x = rs1.AbsolutePosition
|
| Pourquoi ??
|
| Dans la bibliothèque de référence AbsolutePosition est bien associé à
| Recordset !
|
| Public Sub test()
| Dim DB1 As DAO.Database
| Dim rs1 As DAO.Recordset
|
| Set DB1 = CurrentDb()
| Set rs1 = DB1.OpenRecordset("compte") ' si tu ouvre directement une
table
' tu ne sera pas
s^r de l'ordre...


rs1.MoveLast 'pour remplir le recordset...


| rs1.MoveFirst
|
| x = rs1.AbsolutePosition

' ne pas oublier de fermer et libérer...
rs1.close
DB1.close
Set rs1 = Nothing
Set DB1 = Nothing



| End Sub



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
God
Et la je viens de comprendre la raison de faire un MoveLast !!

Merci encore



"3stone" a écrit dans le message de news:
%
Salut,

"God"
| Je programme avec ACCESS en mode DAO
|
| J'ai ouvert un formulaire basé sur une requête contenant les tables
immeuble
| et contrat
|
| J'exécute ces lignes de code mais j'ai une erreur 3251 Opération non
| autorisé sur ce type d'objet sur la ligne x = rs1.AbsolutePosition
|
| Pourquoi ??
|
| Dans la bibliothèque de référence AbsolutePosition est bien associé à
| Recordset !
|
| Public Sub test()
| Dim DB1 As DAO.Database
| Dim rs1 As DAO.Recordset
|
| Set DB1 = CurrentDb()
| Set rs1 = DB1.OpenRecordset("compte") ' si tu ouvre directement une
table
' tu ne sera pas
s^r de l'ordre...


rs1.MoveLast 'pour remplir le recordset...


| rs1.MoveFirst
|
| x = rs1.AbsolutePosition

' ne pas oublier de fermer et libérer...
rs1.close
DB1.close
Set rs1 = Nothing
Set DB1 = Nothing



| End Sub



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw