vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken · ADO   |   VB-Versionen: VB5, VB604.07.07
ADO-Recordset einfacher öffnen

Mit dieser Funktion öffnen Sie ein ADO-Recordset zukünftig mit einem Einzeiler.

Autor:   Dieter OtterBewertung:  Views:  31.042 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Die Vorgehensweise zum Erstellen eines ADO-Recordsets ist wie folgt:

Dim oRs As ADODB.Recordset
Set oRs = New ADODB.Recordset
With oRs
  .CursorLocation = ...
  .Open "SQL-Abfragestring", oConn, adOpenDynamic, adLockOptimistic
End With

Das sind also jedesmal mindestens 5 Zeilen Code.

Warum eigentlich nicht diese Zeilen in einer gesonderte öffentliche Funktion kapseln? Dann benötigt man zukünftig nur noch eine einzige Codezeile zum Erstellen des Recordsets!

' ADO-Recordset erstellen
Public Function dbOpenRecordset(oConn As ADODB.Connection, _
  ByVal sSQL As String, _
  Optional ByVal CursorType As ADODB.CursorTypeEnum = adOpenDynamic, _
  Optional ByVal LockType As ADODB.LockTypeEnum = adLockOptimistic, _
  Optional ByVal CursorLocation As ADODB.CursorLocationEnum = adUseClient) _
  As ADODB.Recordset
 
  Set dbOpenRecordset = New ADODB.Recordset
  With dbOpenRecordset
    .CursorLocation = CursorLocation
    .Open sSQL, oConn, CursorType, LockType
  End With
End Function

Aufrufbeispiel

Dim oRs As ADODB.Recordset
Set oRs = dbOpenRecordset(oConn, "SELECT * FROM Tabelle")

17.07.07: Erweiterung (von Carl-Rainer Zeiss)
Durch nachfolgende Abfrage lässt sich eine komplette Tabelle / Sicht nur mit Angabe des Tabellennamens öffnen:

' ADO-Recordset erstellen
Public Function dbOpenRecordset(oConn As ADODB.Connection, _
  ByVal sSQL As String, _
  Optional ByVal CursorType As ADODB.CursorTypeEnum = adOpenDynamic, _
  Optional ByVal LockType As ADODB.LockTypeEnum = adLockOptimistic, _
  Optional ByVal CursorLocation As ADODB.CursorLocationEnum = adUseClient) _
  As ADODB.Recordset
 
  ' Falls kein "SELECT..." im SQL-String angegeben, 
  ' autom. ergänzen
  If Instr(1, sSQL, "select", vbTextCompare) = 0 Then
    sSQL = "SELECT * FROM " & sSQL
  End If
 
  Set dbOpenRecordset = New ADODB.Recordset
  With dbOpenRecordset
    .CursorLocation = CursorLocation
    .Open sSQL, oConn, CursorType, LockType
  End With
End Function

Aufrufbeispiel:

Dim oRs As ADODB.Recordset
Set oRs = dbOpenRecordset(oConn, "Tabelle")



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.