Bonjour,
J'aimerais sur l'appui d'un bouton compacter la base de donnée Access 2007 extension .ACCDB
Je n'arrive pas a trouver le code correspondant merci !
Version imprimable
Bonjour,
J'aimerais sur l'appui d'un bouton compacter la base de donnée Access 2007 extension .ACCDB
Je n'arrive pas a trouver le code correspondant merci !
bonjour theuma,
On ne peut pas compacter une base ouverte. Il te faut donc compacter une base à partir d'une autre en créant un formulaire plus bouton (par exemple). Pour ce qui est du code VBA, jette un oeil dans la FAQ.
Curt
C'est bizarre car Access arrive à le faire lui ... Il ferme la base, l'a compacte et l'a re-ouvre ... il n'y a pas moyen de faire la même chose ?
Désolé, mais la réponse est invariable... :(
Curt
C'est bien dommage que Microsoft n'est pas pensé à ca, parce que le faire à chaque fermeture de base, c'est trèèèèès long !!!!
Bonjour,
Je le fais tous les 3 jours à l'ouverture de la frontale par le 1er utilisateur, avec le code suivant :
Il faut l'exécuter avant que la frontale ouvre une fenêtre avec des données ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 '******************************* COMPACTE LA DORSALE Public Function Compacte() If Not Mode_debug Then On Error GoTo err: Dim f As String, i As Integer, n As Integer, d As Date Dim r As Double 106 If Len(Dir(Client_path & "planetDB.ldb")) = 0 Then 110 r = SysCmd(1, "Compactage de la base en cours...", 2) 112 f = Client_path & "planet" 114 On Error GoTo e1: 116 Kill f & "TMP.mdb" '10.7a au cas où une vieille version traine... 118 e1: On Error GoTo err: 122 DBEngine.CompactDatabase f & "DB.mdb", f & "TMP.mdb", , , "MS Access;PWD=toto" 124 DoEvents '10.9h par précaution 125 r = SysCmd(2, 1) 126 Kill f & "DB.mdb" '2. Suppression de la base originale 128 DoEvents '10.9h par précaution 130 Name f & "TMP.mdb" As f & "DB.mdb" '3. Renommer la base compactée avec le nom de la base originale 134 CurrentDb.Execute "UPDATE parametres set date_compactage=cdate('" & DATE & "') WHERE ligne=1;", dbFailOnError 136 r = SysCmd(3) 138 Compacte = "OK" Else 140 MsgBox "La base n'a pas pu être compactée car elle est en cours d'utilisation." & CR _ & "Vérifiez qu'aucune fenêtre n'est ouverte sur un poste.", vbInformation, "" 142 Compacte = "NOK" End If Exit Function err: Call message("Erreur " & err.Number & "/" & Erl & " dans fonctions.compacte : " & err.description) End Function
Salut,
C'est possible par le Ruban en appelant le contrôle d'Access (2007 et 2010).
Code:
1
2
3 <officeMenu> <button idMso="FileCompactAndRepairDatabase"/> </officeMenu>
Dolphy ;)
Ça m’intéresse bien de passer par le ruban ... Mais le code que tu ma donné ne compile pas ....
Salut,
Le code est du code XML pour créer des Ruban personnalisé.
Voici quelques liens pour les bases des Rubans personalisé dans Access 2007 et 2010 :
:fleche: http://access.developpez.com/cours/?...2007#ruban2007
Pour la vue backstage d'Access 2010 :
:fleche: http://dolphy35.developpez.com/artic...010/backstage/
@+
Il n'y a pas moyen de cliqué sur le bouton de compactage du menu en Acces en mettant en place du VB ??