1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juillet 2015
    Messages : 21
    Points : 14
    Points
    14

    Par défaut Problème de connexion vb.net - Access 2016

    Bonjour,

    Nous avons développé une application en VB.NET (Visual Studio 2013) qui se connecte à une base Access 2013 sur du Windows 8 qui tourne depuis plus de 2 ans.

    Depuis début juillet, les postes sont en train d'être migré en Windows 10 avec Office 2016.

    Notre application, sur ces nouveaux postes, n'arrive plus à se connecter à la base et renvoi le message d'erreur suivant :

    Le fournisseur "Microsoft.ACE.OLEDB.12.0" n'est pas inscrit sur l'ordinateur local

    Après plusieurs tests de "solutions" trouvées sur internet, je m'en remet à vous pour trouver la solution qui nous permettra de faire communiquer notre application avec sa base de donnée.

    Pour info, sur les postes de développement, nous sommes passés en W10, Visual Studio 2015 et Office 2016.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 352
    Points : 8 855
    Points
    8 855
    Billets dans le blog
    3

    Par défaut

    Il faut installer les composants Access sur les postes clients : Microsoft Access Database Engine 2016 Redistributable.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juillet 2015
    Messages : 21
    Points : 14
    Points
    14

    Par défaut

    Merci, je vais tester cela.

    Par contre, pour les postes clients qui ont déjà MS ACCESS 2016 et pour lesquels on a le message d'erreur, est-ce que cela va changer quelque chose ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juillet 2015
    Messages : 21
    Points : 14
    Points
    14

    Par défaut

    Je me permet de relancer cette discussion car je crois que je vais péter un câble.

    Nous avons 2 type de PC :
    PC 1 : Windows 8 + Office 365
    PC 2 : WIndows 10 + Office 365

    Le bout de code ci-dessous fonctionne parfaitement sur PC1 mais pas sur PC2 qui sort l'erreur "Le fournisseur "Microsoft.ACE.OLEDB.12.0" n'est pas inscrit sur l'ordinateur local".

    Ce bout de code est développé sous Visual Studio 2013 sur le PC1 (nous n'avons pas encore les droits admin pour installer VS sur PC2).

    La question est la suivante : comment faire pour générer un exe à partir de ce bout de code qui fonctionnera sur les deux machines sachant qu'il est, à priori, hors de question d'installer un composant supplémentaire sur PC2 (pas de droit admin)
    (info supplémentaire, l'application qui a le soucis à la base utilise le même type de code mais avait été développé avec Office 2013).

    J'ai essayé de modifier le type de CPU pour Build mais cela n'a rien changé.

    Voici le bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Imports System
    Imports System.Data
    Imports System.Data.Common
    Imports System.Data.OleDb
     
    Public Class Form1
     
        Dim strConn As String
        Dim conn As New OleDbConnection
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\test.accdb;"
            conn.ConnectionString = strConn
     
            Try
                conn.Open()
                MsgBox("Connexion OK")
                conn.Close()
            Catch ex As Exception
                MsgBox("Connexion KO !!" & vbCrLf & "Erreur : " & ex.Message)
            End Try
        End Sub
    End Class

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 352
    Points : 8 855
    Points
    8 855
    Billets dans le blog
    3

    Par défaut

    Citation Envoyé par Soticca Voir le message
    Je me permet de relancer cette discussion car je crois que je vais péter un câble.
    Avant de peter un cable, il faudrait peut-etre prendre le temps de comprendre ce qu'est un fournisseur de donnees (data provider) et comment ca fonctionne Les fournisseurs de donnees sont des composants COM qui doivent etre non seulement installes, mais aussi declares sur la machine (regsvr32). Pour faire cela, il faut que le compte utilisateur qui va lancer regsvr32 beneficie des permissions "FULL CONTROL" sur la cle de registre HKEY_CLASSES_ROOT.

    Citation Envoyé par Soticca Voir le message
    Ce bout de code est développé sous Visual Studio 2013 sur le PC1 (nous n'avons pas encore les droits admin pour installer VS sur PC2).
    Il n'y a pas besoin d'installer Visual Studio pour que ca fonctionne, il faut juste installer les composants redistribuables.

    Citation Envoyé par Soticca Voir le message
    La question est la suivante : comment faire pour générer un exe à partir de ce bout de code qui fonctionnera sur les deux machines sachant qu'il est, à priori, hors de question d'installer un composant supplémentaire sur PC2 (pas de droit admin)
    (info supplémentaire, l'application qui a le soucis à la base utilise le même type de code mais avait été développé avec Office 2013).
    Tu n'as pas le choix, il te faut des droits pour installer les composants redistribuables d'Office. Plusieurs facons de proceder :
    1 - Tu crees ton composant setup executable et tu inclues ton application + les composants redistribuables dedans pour que tout s'installe en meme temps.
    2 - Tu pousses les composants redistribuables vers le PC2 via ton systeme de mises a jour pour Windows.
    3 - Tu fais installer manuellement ces composants par l'utilisateur avant d'utiliser ton logiciel. S'il a oublie, tu peux par exemple detecter leur presence au lancement et afficher un message pour rappeler que cette installation est requise.

    Citation Envoyé par Soticca Voir le message
    J'ai essayé de modifier le type de CPU pour Build mais cela n'a rien changé.
    Cela n'a rien a voir avec le probleme.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juillet 2015
    Messages : 21
    Points : 14
    Points
    14

    Par défaut

    Désolé pour la réponse tardive mais j'ai une autre question.

    En installant AccessDatabaseEngine.exe (access 2010) sur le PC2, l'application fonctionne en effet.

    Par contre, maintenant que je l'ai installé, je ne peux pas juste intégrer de référence dans mon projet VB.NET et ne pas avoir besoin de redistribuer l'AccessDatabaseEngine.exe ?

Discussions similaires

  1. Problème de connexion ODBC Ms Access
    Par Klemsy78 dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/09/2009, 18h33
  2. Problème de connexion delphi7 Ms Access via ODBC
    Par Klemsy78 dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/09/2009, 16h26
  3. Problème de connexion depuis .NET
    Par gstrit dans le forum MS SQL-Server
    Réponses: 5
    Dernier message: 01/06/2009, 21h46
  4. Problème de compatibilité VB.net Access 97
    Par iandeleury dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/01/2008, 22h34
  5. Problème de connexion à une base access
    Par caco19 dans le forum ASP
    Réponses: 4
    Dernier message: 13/08/2004, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo