Bonjour,
Je souhaiterais récupérer des enregistrements dans des bases access mais j'ai un problème sur mon datareader que je n'arrive pas à identifier.
Voici mon code:
Je ne rentre jamais dans le for alors que sur le deuxieme passage je suis sur que ma base et la requete contiennent un enregistrement.
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 Dim monStreamReader As New StreamReader(Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) & "\liste.txt") 'Stream pour la lecture Dim ligne As String ' Variable contenant le texte de la ligne Dim strRequete Dim j As Integer = 1 strRequete = "SELECT * FROM DClient WHERE 'Date creation' > #" & DateDebut.Text & "# AND 'Date creation' < #" & DateFin.Text & "#" 'ouvrir Excel Dim ex As New Excel.Application 'Dim WB As New Excel.Workbook Dim NomExcel, MyDocumentFolder As String Dim WS As Excel.Worksheet MyDocumentFolder = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) NomExcel = MyDocumentFolder & "\CA-" & Date.Today & ".xls" NomExcel = Replace(NomExcel, "/", "-") Dim WB = ex.Workbooks.Open(NomExcel) WS = WB.Worksheets(1) ex.Visible = True Do ligne = monStreamReader.ReadLine 'ouverture base access Dim MyConnexion As OleDb.OleDbConnection MyConnexion = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & ligne) Dim oCommand As New OleDb.OleDbCommand(strRequete, MyConnexion) MyConnexion.Open() 'requete sur la base access Dim oReader As OleDb.OleDbDataReader = oCommand.ExecuteReader() Dim i As Integer = oReader.FieldCount While oReader.Read() 'Mettre Dans Excel For k = 1 To i WS.Cells(j, k) = oReader.GetString(k - 1) Next k j = j + 1 End While oReader.Close() MyConnexion.Close() Loop Until ligne Is Nothing monStreamReader.Close()
Quelqu'un pour m'aider?
Merci.
Partager