Commade ADODB ne fonctionne pas sur un autre ORDINATEUR
tizana
-
26 sept. 2012 à 01:49
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDerniè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
A voir également:
Commade ADODB ne fonctionne pas sur un autre ORDINATEUR
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 20132 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...
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
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 ??
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 20132 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...