title image


Smiley Beispiel für asynchronen Recordset
Auf der Form werden drei Steuerelemente benötigt,



ein DataGrid (Name=DataGrid1)

ein Label (Name=Label1, Width >= 3500)

ein Button (Name=cmdOpen)



Das Beispiel verwendet die northwind-Beispieldatenbank, die ja bei VB im Lieferumfang ist. Es sollte also bei jedem funktionieren, wenn der Pfad zur DB richtig gesetzt ist (bei nichtdeutschsprachiger VB-Installation muß evtl noch der SQL-String angepasst werden).





Option Explicit



Private MconDB As ADODB.Connection

Private WithEvents MrstAsync As ADODB.Recordset







Private Sub Form_Load()

Dim strDB As String



   strDB = "D:\Microsoft Visual Studio\VB98\NWIND.MDB"



   Set MconDB = New Connection

   MconDB.CursorLocation = adUseClient

   MconDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & strDB & ";Jet OLEDB:Database"

   

   Set MrstAsync = New Recordset

   MrstAsync.CursorType = adOpenKeyset

   MrstAsync.CursorLocation = adUseClient

   MrstAsync.LockType = adLockReadOnly

   Set MrstAsync.ActiveConnection = MconDB

   

   Set Me.DataGrid1.DataSource = MrstAsync

   

End Sub







Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)



   If MrstAsync.State <> adStateClosed Then

      MrstAsync.Close

   End If

   Set MrstAsync = Nothing

   If MconDB.State <> adStateClosed Then

      MconDB.Close

   End If

   Set MconDB = Nothing

End Sub









Private Sub cmdOpen_Click()

Dim strSQL As String



   If MrstAsync.State <> adStateClosed Then

      MrstAsync.Close

   End If



   strSQL = "SELECT * FROM Bestellungen, Bestelldetails WHERE Bestellungen.[Bestell-Nr] = Bestelldetails.[Bestell-Nr]"

   MrstAsync.Open strSQL, Options:=adAsyncFetchNonBlocking

   

End Sub





Private Sub MrstAsync_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

   Me.Label1.Caption = MrstAsync.RecordCount & " Datensätze - Übertragung läuft"

   Me.DataGrid1.ReBind

End Sub



Private Sub MrstAsync_FetchComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

   Me.Label1.Caption = MrstAsync.RecordCount & " Datensätze - Übertragung fertig"

   Me.DataGrid1.ReBind

End Sub





 Code eingefügt mit Syntaxhighlighter
Gruß
Gaga

___________________________________________________________________

Profilösungen für VB6
wenn nicht anders angegeben, sind alle Codebeispiele nicht getestet, nur getippt


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: