Soyez le premier à donner votre avis sur cette source.
Snippet vu 18 378 fois - Téléchargée 37 fois
JRO MDAC 2.1 requis (par défaut dans Windows 98/NT/2000) ' Création de l'objet JetEngine Set ObjEngine = Server.CreateObject("JRO.JetEngine") ' Définition de la table à compacter strCompactDataBaseSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyPath\MyDb.mdb;User ID=userName;Password=userPassword;" 'Attention la base compactée doit avoir un nom différent de la base d'origine, et ce nom ne doit pas exister. 'Les valeurs des utilisateurs et mots de passes sont optionnelles. ' Définition de la table compactée strCompactDataBaseDestination = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Jet OLEDB:Encrypt Database=True;Data Source=MyPath\MyDb_compact.mdb;User ID=userName;Password=userPassword" 'Les valeurs des utilisateurs et mots de passes sont optionnelles. 'Engine Type permet de définir le format de la base compactée. Cette valeur est optionnelle. Par défaut la base sera convertie au format MSAccess 2000. 'Attention le format ne peut être qu'équivalent ou supérieure à la base d'origine. Voici les valeurs possibles pour Engine Type : Jet10 = 1 Jet11 = 2 Jet20 = 3 (Access 2) Jet3x = 4 (Access 97) Jet4x = 5 (Access 2000) 'Encrypt Database permet de définir si la base compactée doit être codée ou non (valeur boléenne True/False). Cette valeur est optionnelle. Par défaut la valeur sera celle de la base d'origine. ' Compactage de la base de données ObjEngine.CompactDatabase strCompactDataBaseSource, strCompactDataBaseDestination ' Destruction de l'objet JetEngine Set ObjEngine=Nothing 'Il ne vous reste plus qu'a remplacer l'ancienne base par la nouvelle. 'Voici maintenant le code complet pour cette opération. 'Attention la base de donnée ne doit pas être en lecture seule ' © Copyright Ludovic Lenne - 2001 'Certains champs sont à remplacer par vos données. ' Définition de la base à compacter nameBaseSource = "My_Db.mdb" pathBaseSource = "My_Path\" uidBaseSource = "User" pwdBaseSource = "Password" pathDataBaseSource = pathBaseSource & nameBaseSource ' Définition de la base compactée temporaire nameBaseDestination = "MyDb_temp.mdb" pathBaseDestination = "My_Same_or_Other_Path\" uidBaseDestination = "Same_or_New_User" pwdBaseDestination = "Same_or_New_Password" pathDataBaseDestination = pathBaseDestination & nameBaseDestination ' Définition des valeurs du compactage strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;" strEngine = "Jet OLEDB:Engine Type=4;" strEncrypt = "Jet OLEDB:Encrypt Database=False;" strUidBaseSource = "User ID=" & uidBaseSource & ";" strPwdBaseSource = "Password=" & pwdBaseSource & ";" strUidBaseDestination = "User ID=" & uidBaseDestination & ";" strPwdBaseDestination = "Password=" & pwdBaseDestination & ";" strDataBaseSource = "Data Source=" & pathDataBaseSource & ";" strCompactDataBaseSource = strProvider & strDataBaseSource strDataBaseDestination = "Data Source=" & pathDataBaseDestination & ";" strCompactDataBaseDestination = strProvider & strEngine & strEncrypt & strDataBaseDestination ' Création d'un objet FileSystemObject Set ObjFileSystem = Server.CreateObject("Scripting.FileSystemObject") ' Vérification de l'existence de la base à compacter If (ObjFileSystem.FileExists(pathDataBaseSource)) Then ' Vérifie que la base temporaire n'existe pas If (ObjFileSystem.FileExists(pathDataBaseDestination)) Then 'Si elle existe la base temporaire est effacée ObjFileSystem.DeleteFile pathDataBaseDestination End If ' Création de l'objet JetEngine Set ObjEngine = Server.CreateObject("JRO.JetEngine") ' Compactage de la base de données ObjEngine.CompactDatabase strCompactDataBaseSource, strCompactDataBaseDestination ' Destruction de l'objet JetEngine Set ObjEngine = Nothing ' Remplacement de l'ancienne base par la base compactée temporaire ObjFileSystem.CopyFile pathDataBaseDestination,pathDataBaseSource ,True ' Effacement de la base compactée temporaire ObjFileSystem.DeleteFile pathDataBaseDestination End If ' Destruction de l'objet FileSystemObject Set ObjFileSystem = Nothing
très bon code 10/10 mais juste un souci, lorque tu mets un mot de passe à ta base, as-tu testé le résultat ?
voilà ce que j'obtiens en description d'Err :
"Err = Impossible de démarrer votre application. Le fichier d'informations du groupe de travail est absent ou ouvert en mode exclusif par un autre utilisateur."
Une idée peut être ?
Merci d'avance.
si tu le sais comment gerer une application access avec vb6.2 avec l utilisation du dao sera gentil de ta part.
100000 merci.
ce genre de script est toujours utile.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.