COMPATAGE AUTOMATIQUE LORS DE LA FERMETURE ACCESS 97

cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018 - 6 août 2003 à 08:55
TigerFab Messages postés 115 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 18 mai 2008 - 26 juil. 2005 à 14:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8156-compatage-automatique-lors-de-la-fermeture-access-97

TigerFab Messages postés 115 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 18 mai 2008
26 juil. 2005 à 14:50
yes .. au début je comprenais pas cmt on trouvait le "oum" .. c'est les raccourcis clavier of course ... c'est super car on a ainsi à tout Access par un simple SendKeys (dans une langue définie seulement (fr ici)...)

Merci

A+
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
26 juil. 2005 à 13:58
pas en 97, en 2k oui par contre. Pour ça que j'ai spécifier dans le titre
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
26 juil. 2005 à 12:14
Cela correspond au menu Outils : Utilitaires : coMpacter
On peut le faire directement dans le formulaire avec SendKeys.
TigerFab Messages postés 115 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 18 mai 2008
26 juil. 2005 à 11:36
EnvoiTouches %Oum : je connaissais pas ! Merci Patrice99, voilà ce que je recherchais depuis un bout de temps !
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 août 2003 à 13:29
le problème, c'est ce que j'explique, ça amrche pas, puisuqe la base de donnée est déjà ouverte, vu qu,on s'y trouve

ça fonctionne numéro 1, quand la base de donnée est fermer, masi pas quand elle est ouverte, puisqu'elle dois être ouvert en mode exclusive
dmapps Messages postés 7 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 14 mars 2007
14 août 2003 à 11:30
Pour compresser une base de données je propose la solution suivante depuis VB :

'** Fermeture de la base de données. ********************************************
'** Compression de la base de données. ******************************************
Dim JRO As JRO.JetEngine: Set JRO = New JRO.JetEngine
Dim OldName As String: OldName = GMDBFIC
Dim NewName As String: NewName = Replace("fichier.mdb", ".mdb", ".cdb")

JRO.CompactDatabase _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + OldName, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NewName

'** Remplacement de l'ancien fichier par le nouveau. ****************************
Kill OldName: Name NewName As OldName
'** Ré-ouverture la base de données. ********************************************
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
6 août 2003 à 13:04
de rien
par contre domage, moi la macro fonctionne pas, puisque presque 100% des commande son bloquer, vu que le programme que j'ai fait est pour une entreprise. Donc protection par dessu protection.

pour 2k, je le savasi, c'est pour ça que j'avasi bien spécifier 97. Par contre, ta macro pourrasi être très utile pour beaucoup de monde. Donc merci.
nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007
6 août 2003 à 10:27
bon... en tout cas, merci a dragon car son programme fonctionne très bien et peut servir pour compacter une base a partir d'un autre programme que Access...

Enfin la macro Patrice99 est aussi très fonctionnelle, et pour résumer...

MERCI MERCI MERCI ..... lol
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
6 août 2003 à 08:55
Autre solution : appeler une macro qui pilote le menu Compacter depuis l'application :

Dim bCompactage As Boolean

Private Sub Form_Unload(Cancel As Integer)

If Not bCompactage Then
If vbYes = MsgBox("Voulez-vous compacter la base de données avant de quitter ?", _
vbYesNo Or vbQuestion) Then
Cancel = True
bCompactage = True
DoCmd.RunMacro "McCompacter"
' Ne marche pas ! :
'DoCmd.DoMenuItem acFormBar, 6, 5, 1
'DoCmd.DoMenuItem "Startup", "Tools", "Database Utilities", "Compact Database"
'DoCmd.DoMenuItem "Barre de menus", "Outils", "Utilitaires de base de données", "Compacter une base de données"
'DoCmd.RunCommand acCmdCompactDatabase
End If
End If

End Sub

Voici la macro "McCompacter" :
EnvoiTouches %Oum : C'est le seul moyen de compacter une base ouverte sous Access97 (pilotage du menu Compacter via le clavier !) ; sous Access2k et XP, une option permet de compacter en quittant
Rejoignez-nous