Pourquoi ne puis-je pas utiliser “CompactDatabase” dans DAO.DBEngine.36 à l'aide de VBscript?
Je suis en train de faire un petit script VBScript qui compresse un MS Access 2007 de base de données de fichier.
Le code que j'ai est:
Set acc2007 = CreateObject("DAO.DBEngine.36")
acc2007.CompactDatabase "C:\test.accdb", "C:\test2.accdb", Nothing, Nothing, ";pwd=test"
Set acc2007 = Nothing
J'obtiens cette erreur quand je lance les trois lignes "cscript test.vbs" à partir d'un 32 bits cmd.exe:
C:\test.vbs(10, 1) DAO.DbEngine: format de données non reconnu 'C:\test.accdb'.
La base de données a été créée avec MS Access 2007, quand je l'ouvre en double-cliquant sur l'icône I tapez le mot de passe "test" et puis je l'ouvre normalement. Il dit: "Access 2007" dans le haut de sorte qu'il a le format correct.
Voici la documentation de la fonction, je suis en train d'utiliser: http://msdn.microsoft.com/en-us/library/bb220986.aspx
L'objet DAO.DBEngine.36 est créé avec succès depuis je ne reçois pas toutes les erreurs sur la ligne. Quel est le problème?
Je peux vivre heureux avec cela. =) A bientôt.
OriginalL'auteur Mike | 2010-06-28
Vous devez vous connecter pour publier un commentaire.
DAO 3.6 ne prend pas en charge le nouveau ACCDB format de base de données. Essayez de DAO.DBEngine.De 120 à la place.
Voici un exemple qui fonctionne sur mon système.
Note: j'ai décidé de faire une sauvegarde de ma base de données avant de compact. À la fin, j'ai supprimer l'original (sous forme non compressée) de la base de données et de renommer le compactée un nom d'origine. Si vous n'êtes pas intéressé par ça, on peut le simplifier en supprimant le objFSO choses.
Modifier: mise à jour pour vérifier les fichier de verrouillage; si trouvé ne rien faire.
OriginalL'auteur HansUp
La commande ci-dessus ne fonctionne pas pour Access 2007 et 2010.
Alors que toutes les versions de Windows remontant à 2000, et peut-être même Windows 98, sont livrés avec un exemplaire du moteur à réaction, pour Access 2007 et au-delà, si vous êtes en utilisant le NOUVEAU format (accdb), alors vous avez besoin pour utiliser la nouvelle version du moteur Jet appelé ACE. Notez que ce moteur de données n'est PAS installé par défaut sur Windows, donc vous devez le télécharger à partir de Microsoft.
Bien sûr, en supposant que vous avez déjà Accès à 2007 est installé, alors vous AVEZ de la nouvelle Jet engine (ACE) et vous n'avez PAS besoin de télécharger et d'installer le logiciel mentionné ci-dessus.
Le nouveau nom de l'objet que vous avez besoin est
DAO.DBEngine.120
, afin de modifier votre code:Noter qu'une version 64 bits est également disponible.
OriginalL'auteur Albert D. Kallal