OVH Cloud OVH Cloud

Impossible d'exécuter cette action pour l'instant

3 réponses
Avatar
Stephanie
Bonjour =E0 tous,

Je travaille sur une application d=E9velopp=E9e en Access 2000 utilisant
beaucoup VBA.
Cette application est install=E9e sur 5 postes de travail.

Et comme beaucoup, j'ai moi aussi cette erreur qui s'affiche sur un
seul de mes formulaires et, pire, sur un seul des 5 postes de travail
(incompr=E9hensible).

J'utilise souvent la syntaxe docmd.runsql pour ex=E9cuter une action de
suppression, de modification, d'impression... Mais le truc c'est que
j'utilise cette syntaxe dans toute mon application, alors POURQUOI il
n'y a que ce formulaire qui plante (moi pas comprendre du tout).

Si quelqu'un a trouv=E9 la solution qu'il nous sauve !!

Merci d'avance

3 réponses

Avatar
Gilles MOUGNOZ
Bonjour à tous,
Je travaille sur une application développée en Access 2000 utilisant
beaucoup VBA.
Cette application est installée sur 5 postes de travail.
Et comme beaucoup, j'ai moi aussi cette erreur qui s'affiche sur un
seul de mes formulaires et, pire, sur un seul des 5 postes de travail
(incompréhensible).
J'utilise souvent la syntaxe docmd.runsql pour exécuter une action de
suppression, de modification, d'impression... Mais le truc c'est que
j'utilise cette syntaxe dans toute mon application, alors POURQUOI il
n'y a que ce formulaire qui plante (moi pas comprendre du tout).
Si quelqu'un a trouvé la solution qu'il nous sauve !!
Merci d'avance


Bonjour, Stéphanie

Peux-tu nous indiquer l'action qui bloque, ainsi que l'architecture de ta
base (bases frontales sur les postes et dorsale sur serveur OU fichier
partagé OU fichiers "tout-en-un" installé sur chaque poste)?
Les postes ont-ils tous la même version de Windows et d'Office ? Les deux
sont-ils à jour ?

Dans l'attente d'autres détails...

Avatar
Stephanie
Alors le débogueur s'arrête sur docmd.RunSQL ("Insert Into
Recapitulatif Values....") bref sur une reqête d'ajout. Ca c'est sur
un bouton Ajouter.
Sur mon bouton supprimer le déboguer s'arrête sur
Docmd.RunSQL("Delete * From Recapitulatif...") donc une requête de
suppression.

Et je me suis demandée si ça fonctionnerait en passant par une
variable de type recordset.
Donc sur un bouton de validation j'ai la syntaxe suivante :
dim Req as Recordset
dim Res as DAO.OpenRecordset

set Req=CurrentDB.CreateQueryDef("Select * From Recapitulatif
Where....)
set Res=Req.Openrecordset

Res.Edit
res(1)= Date()
res(2)=me.txtObservation.value

Res.update

Res.close
Res.close

Et ça fonctionne !! Alors je vais essayer de remplacer tous mes
docmd.runsql par cette syntaxe.

Mais tout ça, je le fais aussi dans les autres formulaires qui eux
fonctionnent. Je vois vraiment pas où est la différence qui ferait
que ça ne fonctionne pas dans ce formulaire

Pour l'architecture de l'application, la base de données est
installée sur un serveur et les interfaces sont installées sur
chacunes des 5 machines et sont reliées à cette base.
Les 5 postes ont été installés en même temps par le même
fournisseur avec la même version d'access. Mais le poste où ça ne
fonctionne pas a plus de logiciels (de compta, de paye,...) et surtout
c'est le seul à avoir un modem.

Voilà je vous tiens au courant pour savoir si ma modification
fonctionne.
Merci
Avatar
Stephanie
OUI !! ça y est ça fonctionne !!
Donc j'ai remplacé tous mes Docmd.RunSQL("Requête action")
par une variable de type recordset qui exécute cette requête action.

Même mes docmd.OpenReport et docmd.Close(acform...) plantaient ; mais
du moment où j'ai remplacé tous mes docmd.RunSQL, ils ont
fonctionné.

Autre chose, j'ai trouvé une différence entre ce formulaire qui ne
fonctionnait pas, et les autres formulaire de mon application qui eux
n'ont pas du tout de problème.
C'est que j'avais mis une requête dans le recordsource de ce
formulaire. Mais comme aucun des contrôles de ce formulaire n'étaient
dépendants de cette requête , je l'ai enlevé.

Donc en gros je ne sais pas vraiment pourquoi maintenant ça
fonctionne. Peut-être que mes "docmd" que j'avais utilisé à tout va
dans ce formulaire, prenait trop de mémoire.
Et qu'en plus, Access devait prendre encore plus de mémoire avec la
requête qui y était rattachée... je sais pas trop.

Voilà j'espère que mon exemple pourra servir à d'autres,
à bientôt