Compactage base de données

Le
Joël
Bonjour,
je souhaiterais a la sorti de mon programme que la base de données(format
acces 2000) soit compactée
j'ai donc essayez cette fonction trouver sur la FAQ:
http://faq.vb.free.fr/index.php?question— voir mon code ci-dessous;
mais je n'arrive pas a le faire fonctionner un message d'erreur: 'Impossible
d"effectuer cette opération, fonctionnalités de cette version ne sont pas
disponible dans les base de données au format anterieur.' ???
j'ai essayé de convertir la base de données au format acces 2002_2003 même
erreur !

la version de 'Microsoft Jet and Replication Objects 2.81.1128.0' l'erreur
vient il de la version de la base ou de la version de Microsoft Jet and
Replication Objects ?
quand j'utilise cette base en l'ouvrant avec un
DataEnvironment(Provider=Microsoft.Jet.OLEDB.4.0) elle fonctionne
parfaitement depuis un bon moment seul
le compactage que je souhaite ajouter me pose problème.
Merci de votre aide..
Joël

'
Private Sub CompressBase()
Dim BaseActuel As String
Dim BaseCompactée As String
Dim dbPassWord As String
'
Dim JRO As JRO.JetEngine
Set JRO = New JRO.JetEngine
'
Me.MousePointer = vbArrowHourglass

StatusBar.Panels(3).Text = "Compactage en cours Patientez !!!"

dbPassWord = "******"
BaseActuel = App.Path & "FichierMaBase.mdb"
BaseCompactée = App.Path & "FichierMaBase_2.mdb"

'Si le fichier de base compactée existe déjà
If Dir(BaseCompactée) <> "" Then
Kill BaseCompactée
End If

'Compactage
JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
BaseActuel & ";Jet OLEDB:Database Password=" & dbPassWord, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BaseCompactée &
";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=" & dbPassWord
'Copie et restitution à l'identique
FileCopy BaseCompactée, BaseActuel
' supprime
Kill BaseCompactée

StatusBar.Panels(3).Text = "Compactage terminer"

Me.MousePointer = vbDefault
End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Joël
Le #15393981
bonjour je viens de trouver l'erreur,
pour les bases de format MDB 4.x jet il faut remplacer Jet OLEDB:Engine
Type=4 (qui es pour les formats MDB Jet 3.x) par Jet OLEDB:Engine Type=5
(pour les formats MDB Jet 4.x)

Joël



"Joël" 46ec0b84$0$25950$
Bonjour,
je souhaiterais a la sorti de mon programme que la base de données(format
acces 2000) soit compactée
j'ai donc essayez cette fonction trouver sur la FAQ:
http://faq.vb.free.fr/index.php?question— voir mon code ci-dessous;
mais je n'arrive pas a le faire fonctionner un message d'erreur:
'Impossible d"effectuer cette opération, fonctionnalités de cette version
ne sont pas disponible dans les base de données au format anterieur.' ???
j'ai essayé de convertir la base de données au format acces 2002_2003 même
erreur !

la version de 'Microsoft Jet and Replication Objects 2.81.1128.0' l'erreur
vient il de la version de la base ou de la version de Microsoft Jet and
Replication Objects ?
quand j'utilise cette base en l'ouvrant avec un
DataEnvironment(Provider=Microsoft.Jet.OLEDB.4.0) elle fonctionne
parfaitement depuis un bon moment seul
le compactage que je souhaite ajouter me pose problème.
Merci de votre aide..
Joël

'
Private Sub CompressBase()
Dim BaseActuel As String
Dim BaseCompactée As String
Dim dbPassWord As String
'
Dim JRO As JRO.JetEngine
Set JRO = New JRO.JetEngine
'
Me.MousePointer = vbArrowHourglass

StatusBar.Panels(3).Text = "Compactage en cours... Patientez !!!"

dbPassWord = "******"
BaseActuel = App.Path & "FichierMaBase.mdb"
BaseCompactée = App.Path & "FichierMaBase_2.mdb"

'Si le fichier de base compactée existe déjà
If Dir(BaseCompactée) <> "" Then
Kill BaseCompactée
End If

'Compactage
JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
BaseActuel & ";Jet OLEDB:Database Password=" & dbPassWord, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BaseCompactée &
";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=" & dbPassWord
'Copie et restitution à l'identique
FileCopy BaseCompactée, BaseActuel
' supprime
Kill BaseCompactée

StatusBar.Panels(3).Text = "Compactage terminer..."

Me.MousePointer = vbDefault
End Sub



Publicité
Poster une réponse
Anonyme