cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
6 déc. 2007 à 15:09
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 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
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
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 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
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 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...
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 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
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 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