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 41 42 43
| Public Class ctlSessionResultat
...
Private WithEvents mbgw As BackgroundWorker
...
Private Sub ctlSessionResultat_Load(sender As Object, e As EventArgs) Handles Me.Load
mbgw = New BackgroundWorker() With {.WorkerReportsProgress = True, .WorkerSupportsCancellation = True}
If Not mbgw.IsBusy Then mbgw.RunWorkerAsync()
End Sub
Private Sub mbgw_DoWork(sender As Object, e As DoWorkEventArgs) Handles mbgw.DoWork
Dim _RechercheLines(37, 0) As String
Dim strSql As String = "SELECT * from Table1"
Dim strSql2 As String = "SELECT * from Table2"
Dim ligne As Long = 0
Dim myDataset As New DataSet("myDataset")
Dim totalLine As Long = 0
Dim dt As DataTable
'chargement des datatables avec les données pour la recherche
For Each qry As String In {strSql, strSql2}
dt = New DataTable()
Dim da As New OleDbDataAdapter(qry, "Provider=Microsoft.ACE.OLEDB.12.0;Data source=c:\maBDD.mdb")
da.Fill(dt)
totalLine += dt.Rows.Count
myDataset.Tables.Add(dt)
Next
'redimensionne le tableau avec les elements de recherche
ReDim _RechercheLines(nbColRecherche - 1, totalLine)
'Remplissage du tableau
For Each dt In myDataset.Tables
For Each r As DataRow In dt.Rows
For i = 0 To dt.Columns.Count - 1
If r(i) IsNot DBNull.Value Then _RechercheLines(i, ligne) = r(i)
Next
ligne += 1
Next
Next
e.result = _RechercheLines
End Sub
End Class |
Partager