web-dev-qa-db-fra.com

Moteur de base de données MS Access (32 bits) avec Office 64 bits

Nous avons actuellement un problème majeur avec Microsoft Access Database Engine 2010. Le moteur est disponible en formats 64 bits et 32 ​​bits, ce qui est bien. Cependant, vous devez apparemment toujours installer la version 32 bits si le processus de l'hôte est toujours 32 bits. Bien, on peut faire ça.

Notre logiciel traite un grand nombre de composants hérités en 32 bits, dont une grande partie en code VB6, qui génère un assemblage en 32 bits. Nous supposons donc que le pilote doit également être installé en 32 bits. En effet, lorsque nous installons des pilotes 32 bits sur une machine 64 bits et exécutons nos applications 32 bits, cela fonctionne correctement.

Cependant, le problème commence lorsque Office 2010 64 bits est installé sur le système. Croyez-moi, nous avons essayé de faire comprendre aux utilisateurs que Microsoft Office 64 bits est en grande partie inutile, en vain. Comme les ordinateurs sortent de la ligne d'assemblage avec les versions 64 bits installées, nous ne pouvons pas répondre aux demandes d'assistance lorsque notre logiciel casse quelque chose. Soit l’Office 64 bits rompt notre installation, soit notre version romine, mais ce n’est pas très beau. Un autre problème est que les logiciels non hérités installent parfois les pilotes 64 bits (comme il se doit) et que les deux versions ne coexistent tout simplement pas de manière raisonnable. Soit nos pauses logiciels, soit leurs pauses logiciels.

Alors, est-ce que quelqu'un a réussi à trouver un moyen de faire coexister les pilotes 32 bits avec des installations 64 bits? J'ai vu que l'installation avec /passive permet aux deux d'être installés, et notre installateur utilise passif. Les deux sont en cours d'installation, mais une fois sur le système, notre logiciel ne fonctionne plus ou Office répare en permanence son installation. Y at-il un moyen raisonnable de faire ce travail?

32
drharris

Je n'aime pas répondre à mes propres questions, mais j'ai finalement trouvé une solution qui fonctionne réellement (utiliser une communication socket entre services peut résoudre le problème, mais cela crée encore plus de problèmes). Comme notre base de données est ancienne, elle a simplement requis Microsoft.ACE.OLEDB.12.0 dans la chaîne de connexion. Il s'avère que cela a également été inclus dans Office 2007 (et MSDE 2007), où seule une version 32 bits est disponible. Donc, au lieu d'installer MSDE 2010 32 bits, nous installons MSDE 2007 , et cela fonctionne très bien. D'autres applications peuvent ensuite installer MSDE 2010 64 bits (ou Office 2010 64 bits), ce qui n'entre pas en conflit avec notre application.

Jusqu'ici, il semble que ce soit une solution acceptable pour tous les environnements de système d'exploitation Windows.

17
drharris

Voici une solution de contournement pour installer la version 64 bits du moteur de base de données Microsoft Access 2010 redistribuable sur un système sur lequel une version MS Office 32 bits est installée:

  • Vérifiez la clé de registre 64 bits "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" avant d'installer la version 64 bits du moteur de base de données Microsoft Access 2010 redistribuable.
  • S'il ne contient pas la valeur de registre "mso.dll", vous devrez renommer ou supprimer la valeur après avoir installé la version 64 bits du moteur de base de données Microsoft Access 2010 redistribuable sur un système doté d'une version 32 bits de MS. Office installé.
  • Utilisez le paramètre de ligne de commande "/ passive" pour installer le redistribuable, par exemple. "C:\chemin du répertoire\AccessDatabaseEngine_x64.exe"/passif
  • Supprimez ou renommez la valeur de registre "mso.dll", qui contient le chemin d'accès à la version 64 bits de MSO.DLL (et ne doit pas être utilisée par les versions 32 bits de MS Office).

Vous pouvez maintenant démarrer une application MS Office 32 bits sans le problème de "reconfiguration" . Notez que la valeur de registre "mso.dll" sera déjà présente si une version 64 bits de MS Office est installée. Dans ce cas, la valeur ne doit pas être supprimée ou renommée.

De même, si vous ne souhaitez pas utiliser le paramètre de ligne de commande "/ passive", vous pouvez modifier le fichier AceRedist.msi pour supprimer la vérification de l'architecture MS Office:

  • téléchargez et installez Microsoft Orca: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx
  • décompressez le fichier AccessDatabaseEngine.exe ou AccessDatabaseEngine_x64.exe 
  • ouvrez le fichier AceRedist.msi dans Orca
  • rechercher deux lignes de table contenant l'action "CheckOfficeArchitecture" et supprimer ces lignes
  • enregistrer le fichier AceRedist.msi mis à jour

Vous pouvez maintenant utiliser ce fichier pour installer le moteur de base de données Microsoft Access 2010 redistribuable sur un système sur lequel une version "en conflit" de MS Office est installée (par exemple, une version 64 bits sur un système avec une version MS Office 32 bits) que vous renommez la valeur de registre "mso.dll" comme expliqué ci-dessus (si nécessaire).

26
Peter Coppens

J'ai reçu un message d'erreur plus spécifique indiquant de supprimer le composant d'extensibilité «Démarrer à exécuter Office 16».

Je l'ai corrigé en suivant les étapes de https://www.tecklyfe.com/fix-for-Microsoft-office-setup-error-please-uninstall-all-32-bit-office-programs-office-15- composant-extensibilité-en-un-clic/

  • Allez dans Démarrer> Exécuter (ou Winkey + R)
  • Tapez «installer» (qui ouvre le dossier% windir% installer), assurez-vous que tous les fichiers sont visibles dans Windows (Paramètres des dossiers).
  • Ajoutez la colonne «Objet» (et attribuez-lui une largeur minimale de 400 pixels) - Cliquez avec le bouton droit de la souris sur les en-têtes de colonne, cliquez sur Plus, puis recherchez Objet.
  • Triez sur la colonne Objet et faites défiler jusqu'à ce que vous trouviez le nom mentionné dans votre écran d'erreur («Composant d'extensibilité d'Office 16 Démarrer en un clic»).
  • Faites un clic droit sur le MSI et choisissez de désinstaller
2
kloarubeek

Installez la version 2007, il semble que si vous installez la version opposée à la version d'Office que vous utilisez, vous pouvez le faire fonctionner.

http://www.Microsoft.com/en-us/download/details.aspx?id=23734

1
Matthew Dolman

Une approche similaire à @Peter Coppins répond. Je pense que ceci est un peu plus facile et ne nécessite pas l'utilisation de l'utilitaire Orca:

  1. Vérifiez la clé de registre "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" et assurez-vous que la valeur "mso.dll" n'est PAS présente. S'il est présent, Office 64 bits semble être installé et vous ne devriez pas avoir besoin de cette solution de contournement.

  2. Télécharger le Microsoft Access Database Engine 2010 Redistributable .

  3. À partir de la ligne de commande, exécutez: AccessDatabaseEngine_x64.exe/passive

(Remarque: ce programme d'installation s'est écrasé ou a échoué en silence pour moi. J'ai donc décompressé les composants et exécuté: AceRedist.msi/passive, ce qui est très bien installé. Peut-être un élément Windows 10.)

  1. Supprimez ou renommez la valeur "mso.dll" dans la clé "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths".

Source: Comment installer des pilotes de base de données Microsoft 64 bits avec Microsoft Office 32 bits

1
Jahmic

Si les deux versions de Microsoft Access Database Engine 2010 ne peuvent pas coexister, votre seule solution est de vous plaindre à Microsoft. En ce qui concerne le chargement de versions 64 bits de celle-ci dans votre application 32 bits, il est impossible de le faire directement. 64 bits qui communiquent avec un autre service 32 bits ou votre application via des tuyaux ou des sockets réseaux, mais cela peut nécessiter un effort considérable.

0
Rafael