Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro Compactage de la bdd sous access 97

5 réponses
Avatar
Ping
Bonjour,
Je suis sous Access 97 et Excel 2000.
Je souhaite compacter la base de données automatiquement depuis excel, donc
je lance une macro excel qui m'en lance une autre sous access dans laquelle
je peux trouver ceci :
Public Function CompacterBaseDonnées()
' Envoie les touches pour exécuter Outils, Utilitaires de bases de données,
Compacter une base de données.
SendKeys "%OUM"
End Function

Ce module fonctionne bien lorsqu'on le lance depuis access mais lorsqu'on le
lance depuix excel, cela ne me compacte pas la bdd.
Je pense qu'il faudrait arriver à activer la fenêtre access pour que cela
marche mais je ne sais pas comment faire.
Je connais bien une autre solution, compacter, supprimer l'ancienne base et
renommer la compactée mais je préfererais faire avec ma methode...
Quelqu'un peut m'aider ?
merci

5 réponses

Avatar
pgz
Bonjour;

juste une idée : essayer une commande d'interface plus explicite comme :
DoCmd.RunCommand acCmdCompactDatabase

Bon courage

--
pgz
_____________________________




Bonjour,
Je suis sous Access 97 et Excel 2000.
Je souhaite compacter la base de données automatiquement depuis excel, donc
je lance une macro excel qui m'en lance une autre sous access dans laquelle
je peux trouver ceci :
Public Function CompacterBaseDonnées()
' Envoie les touches pour exécuter Outils, Utilitaires de bases de données,
Compacter une base de données.
SendKeys "%OUM"
End Function

Ce module fonctionne bien lorsqu'on le lance depuis access mais lorsqu'on le
lance depuix excel, cela ne me compacte pas la bdd.
Je pense qu'il faudrait arriver à activer la fenêtre access pour que cela
marche mais je ne sais pas comment faire.
Je connais bien une autre solution, compacter, supprimer l'ancienne base et
renommer la compactée mais je préfererais faire avec ma methode...
Quelqu'un peut m'aider ?
merci


Avatar
3stone
Salut,

"Ping"
| Je suis sous Access 97 et Excel 2000.
| Je souhaite compacter la base de données automatiquement depuis excel, donc
| je lance une macro excel qui m'en lance une autre sous access dans laquelle
| je peux trouver ceci :
| Public Function CompacterBaseDonnées()
| ' Envoie les touches pour exécuter Outils, Utilitaires de bases de données,
| Compacter une base de données.
| SendKeys "%OUM"
| End Function
|
| Ce module fonctionne bien lorsqu'on le lance depuis access mais lorsqu'on le
| lance depuix excel, cela ne me compacte pas la bdd.
| Je pense qu'il faudrait arriver à activer la fenêtre access pour que cela
| marche mais je ne sais pas comment faire.
| Je connais bien une autre solution, compacter, supprimer l'ancienne base et
| renommer la compactée mais je préfererais faire avec ma methode...


Regarde ceci :
http://access.fr.free.fr/articles.php?lng=fr&pg0

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Ping
Slt,
J'ai essayé ta méthode 3stone, mais en fait elle ne marche pas si on la
lance depuis la base de données en cours, il faut compacter une autre base...
Le problème est que à l'origine je n'ai besoin que d'une seule base de
données donc je me vois mal en créer une juste pour compacter.

Pour la méthode de pgz, je n'arrive pas à mettre un argument pour éviter que
Access n'ouvre la boite de dialogue de choix de la base de données. Il
faudrait que ce compactage soit totalement invisible à l'utilisateur.

En tout cas merci de vos réponses rapides

++


Salut,

"Ping"
| Je suis sous Access 97 et Excel 2000.
| Je souhaite compacter la base de données automatiquement depuis excel, donc
| je lance une macro excel qui m'en lance une autre sous access dans laquelle
| je peux trouver ceci :
| Public Function CompacterBaseDonnées()
| ' Envoie les touches pour exécuter Outils, Utilitaires de bases de données,
| Compacter une base de données.
| SendKeys "%OUM"
| End Function
|
| Ce module fonctionne bien lorsqu'on le lance depuis access mais lorsqu'on le
| lance depuix excel, cela ne me compacte pas la bdd.
| Je pense qu'il faudrait arriver à activer la fenêtre access pour que cela
| marche mais je ne sais pas comment faire.
| Je connais bien une autre solution, compacter, supprimer l'ancienne base et
| renommer la compactée mais je préfererais faire avec ma methode...


Regarde ceci :
http://access.fr.free.fr/articles.php?lng=fr&pg0

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
3stone
Salut,

"Ping"
| J'ai essayé ta méthode 3stone, mais en fait elle ne marche pas si on la
| lance depuis la base de données en cours, il faut compacter une autre base...


Ce n'est pas "ma" méthode, mais bien "la" méthode et elle fonctionne parfaitement...
et on ne peut pas (directement) compacter la base qui lance le code !

| Le problème est que à l'origine je n'ai besoin que d'une seule base de
| données donc je me vois mal en créer une juste pour compacter.


Pour compacter la base en cours, regarde ceci (spécial A97 ;-)
http://access.fr.free.fr/download.php?lng=fr&pg0


PS: Les sendkeys sont des horreurs à éviter !

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Ping
Merci 3stone,
C'est exactement ce dont j'ai besoin, je comprends pas tout le code mais ça
marche parfaitement pour ce que je veux faire.


merci

++