Compacter la base

cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
- 6 déc. 2007 à 15:09
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
- 10 déc. 2007 à 13:04
bonjour
je voudrais comacter ma base,mais ça ne fonctionne pas
voila mon code.

Private Sub Compacter_Click()'le bouton
Compact
End Sub
Option Explicit


'remplacer cette constante par votre mot de passe
Const c_sPASSWORD As String = "ufis"
Const c_sDATABASE As String = "centre_aéré.mdb"


Public Sub compact()
'remplacer la DB par la votre
 Dim sPath
 sPath = App.Path & "\BD" 
 If Right(sPath, 1) <> "" Then sPath = sPath & ""
 CompactDataBaseAccess sPath & c_sDATABASE, c_sPASSWORD
End Sub




'**************************************************************
'purpose : this sub compacts a database using JRO
'params: LocalDatabase : The actual db
'        sPassword : The DB password
'
'**************************************************************
Public Sub CompactDataBaseAccess(sLocalDatabase As String, sPassword As String)
   
    On Error GoTo ERRORHANDLER
    Screen.MousePointer = vbHourglass
   
    Dim oFSO As FileSystemObject
    Dim oJRO As JRO.JetEngine
    Dim sShortName As String, sExt As String
    Dim sCompactPart1    As String
    Dim sCompactPart2    As String
   
    Set oFSO = New FileSystemObject
    sShortName = oFSO.GetBaseName(sLocalDatabase)
    sExt = ".Bak"
    sShortName = sShortName & sExt


    sCompactPart1 = "Provider=Microsoft.Jet.OLEDB.4.0" & _
        ";Data Source=" & sLocalDatabase
    sCompactPart2 = "Provider=Microsoft.Jet.OLEDB.4.0" & _
        ";Data Source=" & sShortName
 
    Set oJRO = New JRO.JetEngine
    oJRO.CompactDatabase sCompactPart1, sCompactPart2
   
    ' delete the original database
    oFSO.DeleteFile sLocalDatabase
    oFSO.MoveFile sShortName, sLocalDatabase
    
   EXITPOINT:
    Screen.MousePointer = vbDefault
    If Not oFSO Is Nothing Then
      Set oFSO = Nothing
    End If
    If Not oJRO Is Nothing Then
      Set oJRO = Nothing
    End If
    Exit Sub


ERRORHANDLER:
    Resume EXITPOINT
End Sub

je crois que la base doit etre fermé,mais je ne sais pas comment faire.
merci
petchy

11 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
6 déc. 2007 à 15:20
Pour sur, tu dois avoir fermé ta base....

a noter que JetComp.exe est plus efficace pour la compression/reparation de base

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
6 déc. 2007 à 15:56
Salut à tous,

Petchy >> tu n'as pas bien regarder ma dernière source alors.... sinon regarde ici

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
6 déc. 2007 à 17:43
salut Exploreur

si si j'ai bien regarder ta source "STOCK INFO GESTION INFORMATIQUE"
mais je n'utilise pas le meme code pour l'ouverture de ma base,

Sub Main()
On Error GoTo erreur
'Connection base de donnée
Set Db = New ADODB.Connection
Db.Provider = "Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\BD\centre_aéré.mdb ;Jet OLEDB:Database Password=ufis;"
Db.Open
frmconnexion.Show
Exit Sub
erreur:
MsgBox "Probleme de connection à la base de donnée" & vbCrLf & "Vérifiez que la base de donnée se situe dans le repertoire BD", vbCritical, "Erreur de connection"
End
End Sub
donc j'ai tous essayer pour fermer ma base avant de la compacter
Db.close
mais j'ai une erreur
si tu vois ou est l'erreur,fais moi signe
merci
petchy
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
6 déc. 2007 à 20:06
Re,

Db, est déclaré où ? Dim ? Public ?

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
7 déc. 2007 à 04:24
re
Db est déclaré e npublic

Public Db As ADODB.Connection

petchy
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
7 déc. 2007 à 09:01
Re,

C'est que ton problème est bizarre...!Je pense que ton problème ne vient pas du db.close, car il me vient à l'esprit, qu'une fois j'ai fais un essai de compactage avec mon snippet sur une bdd avec mot de pass, ben cela ne marchais pas !

Donc il est fort posible que ton problème vient de là...Essai avec ta même base mais sans mot de pass et en changeant ta chaine de connection...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
7 déc. 2007 à 15:23
salut
ha bon,ben je crois que je vais laisser tomber,car ça commence à etre compliquer.
merci Exploreur pour ton aide
@ plus
petchy
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
8 déc. 2007 à 09:33
Salut,

Regarde cette source de Bouv, je pense qu'elle pourrait t'aider..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
8 déc. 2007 à 12:22
Re

j'ai bien regarder le lien que tu ma donner,et j'ai toujours un probleme de fermeture de la base lors du compactage,pourtant j'ai bien enlever le mot de passe sur la base,mais j'ai le message
Call MsgBox("Le compactage a échoué !" & vbCrLf & vbCrLf & _
                      "Vérifiez que personne n'est connecté à la base !", vbExclamation + vbOKOnly, "Attention").
alors c'est agaçant    
tans pis je verrai un peu plus tard pour le compactage de la base.
@ plus
petchy
0
cs_Exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
9 déc. 2007 à 22:17
Re,

Regarde la maj de mon snippet ici, il prend en compte l'ouverture pour le compactage de la bdd le mot de pass...

Note : Il a était mis à jour et rendu fonctionnel grâce à l'aide d'une personne du site(qui se reconnaitra)...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
10 déc. 2007 à 13:04
salut Exploreur

merci pour la mise à jour de ton snippet,le probleme c'est qu'il faut que je change ma connection avec ma base ,car quand je lance j'ai pas mal d'erreur.
donc je crois que je verrais plus tard pour le compactage de la base
merci encore pour ton aide.
@plus
petchy
0