Réparer une base Access

cs_Chrystelle Messages postés 17 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 2 octobre 2002 - 28 mai 2002 à 11:24
cs_Chrystelle Messages postés 17 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 2 octobre 2002 - 28 mai 2002 à 18:14
j'essaie de réparer une base Access par du code :
DBEngine.RepairDatabase (BDname)
BDname recevant le nom de la base et son chemin
J'ai le message : "erreur d'exécution 3343. Format de base de données 'C:\Mes documents\Bases\Gescom.mdb' non reconnu.' "

Quelqu'un peut il m'aider ?
Merci

6 réponses

cs_processus Messages postés 360 Date d'inscription vendredi 24 août 2001 Statut Membre Dernière intervention 9 juillet 2008 3
28 mai 2002 à 11:41
t'utilise à tous les coup DAO sur une base 2000... BIP!!!! Ca fonctionne pas, il te faut utiliser l'objet JRO avec la méthode 'CompactDatabase()'
0
cs_Chrystelle Messages postés 17 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 2 octobre 2002
28 mai 2002 à 11:46
J'ai oublié des infos, j'utilise ADO avec une base 2000
0
cs_processus Messages postés 360 Date d'inscription vendredi 24 août 2001 Statut Membre Dernière intervention 9 juillet 2008 3
28 mai 2002 à 11:47
Désolé, mais c'est pas possible, l'object 'DBEngine' fait partis des composants DAO, et pas ADO !! Vérifie bien !
0
cs_Chrystelle Messages postés 17 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 2 octobre 2002
28 mai 2002 à 12:13
On peut pas réparer avec ADO ?
0

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

Posez votre question
cs_processus Messages postés 360 Date d'inscription vendredi 24 août 2001 Statut Membre Dernière intervention 9 juillet 2008 3
28 mai 2002 à 13:18
Si, si, mais en fait, c'est comme dans Access 2000, je sais pas si tu t'es rendu compte mais il n'y a plus la fonction "Réparer la base de donnée" parceque en fait, maintenant, "Compacter la base de donnée" fait les 2.
J'ai retrouvé un bout de code pour JRO, le voici :

Public Function CompressDatabase(ByVal Prm_strSourceDB As String, ByVal Prm_strPass As String) As Boolean
    
    Dim objJRO As Object
    Dim strDBDst As String
    Dim boolConnexionClose As Boolean
    
    On Error GoTo CompressDatabase_Err
    
    Screen.MousePointer = vbHourglass
    
    Set objJRO = CreateObject("JRO.JetEngine")
    
    strDBDst = Replace(Prm_strSourceDB, ".mdb", "_backup.mdb")
    If (FileExist(strDBDst)) Then Kill strDBDst
        
    ' Compactage / OLEEngine = 5
    objJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Prm_strSourceDB & ";Jet OLEDB:System Database=" & Replace(Prm_strSourceDB, "mdb", "mdw") & ";User ID=USER;Password=Pass"), _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBDst & ";Jet OLEDB:Encrypt Database=True;Jet OLEDB:Engine Type=5"
    
    If (FileExist(strDBDst)) Then
        Kill Prm_strSourceDB
        Name strDBDst As Prm_strSourceDB
        
        CompressDatabase = True
    End If
        
CompressDatabase_Fin:
    
    Set objJRO = Nothing
        
    Screen.MousePointer = vbNormal
    
    Exit Function
        
CompressDatabase_Err:

    Call MsgBox Err.Description
    Resume CompressDatabase_Fin

End Function



Adapte le pour tes besoin. Contact moi si t'a des questions.
0
cs_Chrystelle Messages postés 17 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 2 octobre 2002
28 mai 2002 à 18:14
En fait je cherche à faire ca parce que sur ma base j'ai des tas d'erreurs, il n'arrive pas à trouvr une table qui existe,... des erreurs aléatoires
Je me disais que c'était peut être la base qui était endommagée.
0
Rejoignez-nous