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 :
Les différents exemples qui ne fonctionne pas :Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
Un autre code que j'ai testé:
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
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
Le message d'erreur en plus est celui ci .
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
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
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.
Partager