Commade ADODB ne fonctionne pas sur un autre ORDINATEUR

tizana - 26 sept. 2012 à 01:49
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 - 26 sept. 2012 à 15:49
Bonjour
J’ai un problème dans mon programme vb lorsque je veux l’utiliser sur un autre ordinateur.
Mon programme est simple il consiste à lire des données à partir d’une base de données ACCESS. En utilisant les ADODB
Voici le code :

Public Class Form1
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim cmd As ADODB.Command
    Dim Cf As ADODB.Field
    Dim BD_sett As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        BD_sett = TextBox1.Text
        cn = New ADODB.Connection
        cn.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + BD_sett + ";Persist Security Info=False"   ' constante, indiquer source de données
        cn.Open()
        rs = New ADODB.Recordset
        rs = cn.Execute("Select * from Reynolds_h where dates like '" + Now.Date + "' order by Heures")

        If rs.EOF Then
            MsgBox("Données inexistant pour la courbe ", MsgBoxStyle.Exclamation, "Erreur courbe")
        End If

        MsgBox(rs.Fields(3).Value.ToString)
        rs.MoveNext()
        MsgBox(rs.Fields(3).Value.ToString)

        rs.Close()
        cn.Close()
    End Sub
End Class


Sachant que le textbox1 contient le chemin de la Base de données.
Bien dans le projet j ajoute le adodb.dll comme suit :
Dans le menu projet , cliquez sur Ajouter une référence.
Sous l'onglet .NET , double-cliquez sur adodb et puis cliquez sur OK.

Le programme fonctionne correctement sur mon ordinateur mais lorsque je l’essaye sur un autre ordinateur l’application s ouvre sans aucun problème mais lorsque j appuie sur le boutton pour lire les données une erreur s affiche :
Could not load type ADODB.Fileds to InternalFiledsMarshaler from assembly …….
Bien sur dans cet ordinateur le dotNetFx40_client_x86_X64.exe et dotNetFx40LP_client_x86_X64fr.exe sont installé si non le programme ne démarre jamais .

J ai créer un setup grâce a ClickOnce integrer a visual studio et je l ai installer j ai eu le mm problème .

J ai essayer de copier le fichier debug ou se trouve l executable et j ai installer le ADODB.dll grace a la commande : regsvr32.exe et le meme probleme persiste

J ai aussi créer un setup avec Inno setup en intégrant le fichier ADODB.dll dans l’installation mais le mm probleme persiste.
Sachant que access 2010 est installe sur ce PC. et le visual studio n est pas installer

Quelqu’un connait une solution ?? et merci

7 réponses

NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
26 sept. 2012 à 02:18
Wow!!! Des recordset en Vb.net!! tu ne te serais pas tromper par hasard?? c'est comme si tu utilisais encore Eniac en 2012 (ouais je suis allé chercher un peu loin)
Utilise plutôt l'espace de noms "System.Data.OleDb" avec notamment ses objets "OleDbCommand, OleDbConnection, OleDbDataReader, ..." tu seras déjà bien plus à jour avec ça et je pense que t'auras plus de problème "sur un autre ORDINATEUR"


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
0
waaaw si je dois remplacer les ADODB il me faut un éternité car j'ai une autre grosse application que j'ai réaliser avec ADODB que je doit la faire fonctionner :(
Merci
d'autre solution
0
Utilisateur anonyme
26 sept. 2012 à 02:58
Bonjour,

En partant cette ligne est inutilisable avec Access 2010:

    cn.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + BD_sett + ";Persist 


À partir d'Access 2007, il faut utiliser le moteur ACE

Une fois que tu auras corrigé cela essaie de réinstaller ton programme corrigé.
0
le fichier acces est creer avec ACCESS 2010 mais il est enregistrer sous la avec l'extention .mdb
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
j'ai trouve la solution mais je ne suis pas tres convaincu et est ce que quelqun peut t il m'expliquer pourquoi :

dans l'explorateur de solutions ,je sélectionne mon projet et clique droit / propriété

je sélectionne l'anglet COMPILER ensuite je clique sur le Bouton Parametres avance du compilateur et dans le FRAMEWORK cible je change vers .NET Framework 3.5 (avant j'etais sur .NET Framework 3.5 client ) ensuite je compile et je met le fichier DEBUG sur mon l'autre PC et HOOOP il fonctionne correctement !!!!!! je peux lire les donnees dans le fichier ACCEES

quelqu'un peut il m'expliquer ce qui vient de se passer SVP ?? et c quoi la difference entre .NET framework normal et client ??
0
désole faute de frappe dans l'ancien Framework j'etais sur le .NET Framework 4 client
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
26 sept. 2012 à 15:49
C'est une question de Framework, si le 4.0 n'est pas installé sur l'autre machine est que la cible de ton projet est 4.0 tu comprends toi même que c'est quelque peu insensé. c'est juste une question de compatibilité!!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
0
Rejoignez-nous