OVH Cloud OVH Cloud

MonRset.sort A97 => XP

5 réponses
Avatar
f
Bonjour à tous,

En version 97 j'avais utilisé dans différents projet une syntaxe du type :

Dim mbd As Database
Set mbd = CurrentDb()
Set tmpsim = mbd.OpenRecordset("MaTable")
If tmpsim.RecordCount Then
tmpsim.MoveLast
tmpsim.Sort = "[largeur]"

Maintenant j'obtiens systématiquement le message 3251
Opération non autorisé pour ce type d'objet !!

J'ai tester sur différents nouveaux projets
Où j'ai vérifié les références : identique ou équivallente
J'ai cherché également dans l'aide, je n'y ai rien vu qui m'a éclairé...

Où j'ai raté quelque chose ?

Merci de toute contribution,
Merci d'avoir lu jusque là.

5 réponses

Avatar
Rv
Bonjour,

Je n'ai pas de version Access 97 sous la main mais après des tests sur
de l'Access 2000, on peut voir que le choix du type de Recordset résoud le
pb :
Set tmpsim = mbd.OpenRecordset("MaTable", dbOpenDynaset) fonctionne.
Peut-être que le choix par défaut du type de Recordset diffère entre les
2 versions ou ... A creuser!

A+

Rv

""

oste.net> a écrit dans le message de
news:
Bonjour à tous,

En version 97 j'avais utilisé dans différents projet une syntaxe du type :

Dim mbd As Database
Set mbd = CurrentDb()
Set tmpsim = mbd.OpenRecordset("MaTable")
If tmpsim.RecordCount Then
tmpsim.MoveLast
tmpsim.Sort = "[largeur]"

Maintenant j'obtiens systématiquement le message 3251
Opération non autorisé pour ce type d'objet !!

J'ai tester sur différents nouveaux projets
Où j'ai vérifié les références : identique ou équivallente
J'ai cherché également dans l'aide, je n'y ai rien vu qui m'a éclairé...

Où j'ai raté quelque chose ?

Merci de toute contribution,
Merci d'avoir lu jusque là.




Avatar
3stone
Salut,

""
En version 97 j'avais utilisé dans différents projet une syntaxe du type :

Dim mbd As Database
Set mbd = CurrentDb()
Set tmpsim = mbd.OpenRecordset("MaTable")
If tmpsim.RecordCount Then
tmpsim.MoveLast
tmpsim.Sort = "[largeur]"

Maintenant j'obtiens systématiquement le message 3251
Opération non autorisé pour ce type d'objet !!



Essaie en écrivant :

Dim mbd As DAO.Database
Dim tmpsim As DAO.Recordset

Dans ton exemple, tu as d'ailleurs oublié de déclarer le "tmpsim"


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
Gaël Schmitt
Bonsoir,

Es tu sur d'avoir la référence DAO de cochée et mise en priorité plus élévé
que ADO ?

Gael.

""

oste.net> a écrit dans le message de
news:
Bonjour à tous,

En version 97 j'avais utilisé dans différents projet une syntaxe du type :

Dim mbd As Database
Set mbd = CurrentDb()
Set tmpsim = mbd.OpenRecordset("MaTable")
If tmpsim.RecordCount Then
tmpsim.MoveLast
tmpsim.Sort = "[largeur]"

Maintenant j'obtiens systématiquement le message 3251
Opération non autorisé pour ce type d'objet !!

J'ai tester sur différents nouveaux projets
Où j'ai vérifié les références : identique ou équivallente
J'ai cherché également dans l'aide, je n'y ai rien vu qui m'a éclairé...

Où j'ai raté quelque chose ?

Merci de toute contribution,
Merci d'avoir lu jusque là.




Avatar
f
Bonsoir à tous,
Bonsoir et merci Rv, 3stone, Gael Schmitt,

Oui, oui certes 3stone, mon exemple étant un exemple composite il manquait bien sur la déclaration la plus importante !

Je suis confu, la solution de Rv je crois bien l'avoir utiliser une fois il y un an ! je ne m'en souvenais plus.
Merci à tous disais-je au début, d'abord, d'avoir répondu tous simplement. De plus chacune des réponses me parait pertinente.
Je ne teste pas ce soir par ce que là je suis même étonné d'arriver encore à taper une sorte de français sur le clavier, alors delà
à tester...
En tout cas merci encore.
Je vous ferai un retour une fois mes tests effectués.

Merci encore (non pas si fatigué ;-))
Merci d'avoir lu jusque là.



"" a écrit dans le message de
news:
Bonjour à tous,

En version 97 j'avais utilisé dans différents projet une syntaxe du type :

Dim mbd As Database
Set mbd = CurrentDb()
Set tmpsim = mbd.OpenRecordset("MaTable")
If tmpsim.RecordCount Then
tmpsim.MoveLast
tmpsim.Sort = "[largeur]"

Maintenant j'obtiens systématiquement le message 3251
Opération non autorisé pour ce type d'objet !!

J'ai tester sur différents nouveaux projets
Où j'ai vérifié les références : identique ou équivallente
J'ai cherché également dans l'aide, je n'y ai rien vu qui m'a éclairé...

Où j'ai raté quelque chose ?

Merci de toute contribution,
Merci d'avoir lu jusque là.




Avatar
f
Bonjour à tous,
Bonjour et merci Rv, 3stone, Gael Schmitt,

Alors oui, Gael j'avais bien DAO de déclarer pas en premier mais comme dans Access 97, sauf que là c'est 3.6.
Alors oui, 3stone je déclarais auparavant mes recordset as Recordset j'ai essayé sur un cas de figure de faire un dim DAO.recordset
ça n'a pas débloqué le problème toujours le message 3251. Mais je garde le conseil et je me note de lire l'aide sur ce type de
variable.

Non, mais c'est un non positif, ce qui solutionne le problème, merci à toi aussi Rv c'est bien le paramètre dbOpenDynaset.

Et il a fallu ton explication lumineuse :
"Peut-être que le choix par défaut du type de Recordset diffère entre les 2 versions ou ... A creuser!"
... pour que je me souvienne qu'une fois j'avais fait le même chemin mais il m'avait fallu longtemps pour trouver et ça n'avait pas
suffisament marqué ma mémoire...

Je ne dis pas ça pour m'attribuer la réponse mais pour confirmer (avec mon peu de compétence) que je suis d'accord sur ton
analyse...

Désolé, cela fait bien deux semaines que j'avais buté sur ce même problème sans que la raison du problème me remonte à la
mémoire....

Merci encore à tous.
Je peux ainsi poursuivre mon projet...
Merci d'avoir lu jusque là.


"" a écrit dans le message de
news:
Bonjour à tous,

En version 97 j'avais utilisé dans différents projet une syntaxe du type :

Dim mbd As Database
Set mbd = CurrentDb()
Set tmpsim = mbd.OpenRecordset("MaTable")
If tmpsim.RecordCount Then
tmpsim.MoveLast
tmpsim.Sort = "[largeur]"

Maintenant j'obtiens systématiquement le message 3251
Opération non autorisé pour ce type d'objet !!

J'ai tester sur différents nouveaux projets
Où j'ai vérifié les références : identique ou équivallente
J'ai cherché également dans l'aide, je n'y ai rien vu qui m'a éclairé...

Où j'ai raté quelque chose ?

Merci de toute contribution,
Merci d'avoir lu jusque là.