[VB2008 express] Access (pb de connexion a la base de donnée)
Bonjour ,
Je tente de me connecter à access, j'arrivais très bien en VB 6 (j'avais un exemple qui marchais très bien , mais là tous les exemples de connexion ne fonctionne pas . )
J'ai toujours un message sympathique du type :
Citation:
Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
Les différents exemples qui ne fonctionne pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Imports System.Data.OleDb
Module Module1
Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public acsconn As New OleDbConnection
Public acsdr As OleDbDataReader
Public acsda As New OleDbDataAdapter
Public strsql As String
Sub connect(ByVal lien_bd As String)
acsconn.ConnectionString = "Provider=microsoft.ace.oledb.12.0; data source=" + lien_bd + "; persist security info=false;"
Debug.Print(acsconn.ConnectionString)
acsconn.Open()'Erreur ici
If acsconn.State = ConnectionState.Open Then
MsgBox("Connected")
End If
If acsconn.State = ConnectionState.Closed Then
'MsgBox("Cloed")
End If
End Sub
End Module |
Un autre code que j'ai testé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Imports System.Data.OleDb
'////////////////////////MODULE FONCTION ACCESS////////////////
Module bdaccess
Dim MyConnection As New System.Data.OleDb.OleDbConnection()
'procédure de connection a une bd access
Public Sub DB_open(ByVal nombd As String)
Try
MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & nombd
MyConnection.Open()'Message d'erreur ici
Catch ex As Exception
MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message)
End Try
End Sub
'deconenction de la base
Public Sub deconnection()
Try
MyConnection.Close()
Catch ex As Exception
MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message)
End Try
End Sub
Public Function access(ByVal requetesql As String) As DataSet
Dim MyAdapter As OleDbDataAdapter = New OleDbDataAdapter()
Dim MyDataSet As DataSet = New DataSet("MesDonnées")
Dim StrConnect As String
Dim MyCommand As OleDbCommand
Dim requete As String
Try
MyCommand = New OleDbCommand(requetesql, MyConnection)
MyAdapter.SelectCommand = MyCommand
MyDataSet.Clear()
MyAdapter.Fill(MyDataSet, "fichier")
'A ce niveau les donnes résultantes de la requete
'se trouvent dans => MyDataSet.Tables(0)
Return MyDataSet
Catch ex As Exception
MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message)
End Try
End Function
End Module |
Le message d'erreur en plus est celui ci .
Citation:
Impossible d'établir la connection à la base.Le fournisseur 'Microsoft.Jet.OLEDB.4.0' n'est pas inscrit sur l'ordinateur local.
J'ai lu sur certains forum qu'il faut passer en 32 bits car Microsoft.Jet.OLEDB.4.0 a été codé en 32 bits et n'est pas compatible en 64 , j'ai tenté ( je me suis peut être trompé dans les options ) mais ça plantais avant . ( j'utilise kernel32 pour utiliser les fichier.ini simplement ) [Mais bon je pense que ce n'est plus le cas , j'espère que windows a fait ce qu'il faut ... ]
Merci d'avance pour votre aide.