IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Visual Basic - 10 Einsteiger-Tipps für die Datenbankprogrammierung mit VB und ADO



10 Einsteiger-Tipps für die Datenbankprogrammierung mit VB und ADO

Dieser Artikel stellt Ihnen 10 grundlegende Tipps zur Programmierung von Datenbankanwendungen mit VB und ADO vor.


Autor: Tobias Surmann (incsoft)
Datum: 12-04-2003, 15:12:47
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 74699x
Rating: 6.57 (7x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Dieser Artikel stellt Ihnen 10 grundlegende Tipps zur Programmierung von Datenbankanwendungen mit VB und ADO vor. Erklärungen finden Sie jeweils vor dem entsprechenden Codeabschnitt und als Kommentare im Quelltext selbst.

Tipp 1: Eine Verbindung zu einer Access 97 Datenbank herstellen

Mit ADO (ActiveX Data Objects) kann man z.B. auf eine Access 97-Datenbank und den enthaltenen Tabellen, Datensätze und Abfragen zugreifen. Dieser Tipp zeigt Ihnen, wie man eine Verbindung zu einer Access 97-Datenbank herstellt. Da ADO auf Objekten basiert, ist auch das Verbindungsobjekt, im Code Cn, ein Objekt. Verschiedene Eigenschaften müssen festgelegt werden, damit ADO weiß, welcher Datenbanktyp zu öffnen ist. Vor der Verwendung von ADO muss im Menü Projekt - Verweise… ein Verweis auf die Microsoft ActiveX Data Objects 2.x Library eingerichtet werden.

Option Explicit

Public Cn As New ADODB.Connection

Public Sub InitConnection97(Filename As String)

  Cn.Provider = "Microsoft.Jet.OLEDB.3.51" 'Access97
  Cn.ConnectionString = Filename  'Datenbankpfad
  'z.B. "C:\Programme\Microsoft Visual Studio\VB98\Biblio.mdb"        
  
  Cn.CursorLocation = adUseClient
  Cn.Mode = adModeReadWrite 'zum lesen und schreiben öffnen

  Cn.Open 'Verbindung herstellen

End Sub
Tipp 2: Eine Verbindung zu einer Access 2000 Datenbank herstellen

Mit ADO (ActiveX Data Objects) kann man z.B. auf eine Access 2000 Datenbank und den enthaltenen Tabellen, Datensätze und Abfragen zugreifen. Dieser Tipp zeigt Ihnen, wie man eine Verbindung zu einer Access 2000 Datenbank herstellt. Da ADO auf Objekten basiert, ist auch das Verbindungsobjekt, im Code Cn, ein Objekt. Verschiedene Eigenschaften müssen festgelegt werden, damit ADO weiß, welcher Datenbanktyp zu öffnen ist. Vor der Verwendung von ADO muss im Menü Projekt - Verweise… ein Verweis auf die Microsoft ActiveX Data Objects 2.x Library eingerichtet werden.

Option Explicit

Public Cn As New ADODB.Connection

Public Sub InitConnection2000(Filename As String)

  Cn.Provider = "Microsoft.Jet.OLEDB.4.0" 'Access 2000
  Cn.ConnectionString = Filename 'Datenbankpfad
  'z.B. "C:\Programme\Microsoft Visual Studio\VB98\Biblio.mdb"        
  
  Cn.CursorLocation = adUseClient
  Cn.Mode = adModeReadWrite 'zum lesen und schreiben öffnen
  
  Cn.Open 'Verbindung herstellen

End Sub
Tipp 3: Eine Verbindung zu einem SQL-Server herstellen

Mit ADO (ActiveX Data Objects) kann man z.B. auf die Datenbank eines SQL-Servers und den enthaltenen Tabellen, Datensätze und Abfragen zugreifen. Dieser Tipp zeigt Ihnen, wie man eine Verbindung zum Microsoft SQL-Server herstellt. Da ADO auf Objekten basiert, ist auch das Verbindungsobjekt, im Code Cn, ein Objekt. Verschiedene Eigenschaften müssen festgelegt werden, damit ADO weiß, welcher Datenbanktyp zu öffnen ist. Vor der Verwendung von ADO muss im Menü Projekt - Verweise… ein Verweis auf die Microsoft ActiveX Data Objects 2.x Library eingerichtet werden.

Option Explicit

Public Cn As New ADODB.Connection

Public Sub InitConnectionSQL(Servername As String, DB As _ 
String, UserID As String, Password As String)

  Cn.Provider = "SQLOLEDB.1" 'SQL-Server
  Cn.ConnectionString = "Data Source=" & Servername & _
  " User ID=" & UserID & " Password=" & Password & _
  " Initial Catalog=" & DB 'Einstellungen für den Zugriff auf   
                           'den SQL-Server

  Cn.Open 'Verbindung herstellen

End Sub
Tipp 4: Verbindung zur Datenbank trennen

Um eine vorhandene Verbindung zu einer durch ein ADODB.Connection-Objekt geöffneten Datenbank zu trennen, z.B. beim Beenden der Anwendung, kann folgender Tipp verwendet werden.

Option Explicit

Public Cn As New ADODB.Connection

Public Sub TerminateConnection()

  If Cn.State = adStateOpen Then 'Wenn Verbindung besteht

    Cn.Close 'Verbindung trennen
    Set Cn = Nothing 'Objekt löschen

  End If

End Sub
Tipp 5: Eine Tabelle öffnen

Das ADODB.RecordSet-Objekt ist der Schlüssel für den Zugriff auf Tabellen einer Datenbank. Der folgende Tipp zeigt, wie man eine Tabelle öffnet. Es wird von einer gültigen Verbindung zu einer Datenbank ausgegangen.

Option Explicit

Public Cn As New ADODB.Connection
Public Rs As New ADODB.Recordset

Public Sub InitTable(tblName As String)

  Set Rs.ActiveConnection = Cn 'aktive Verbindung zuweisen
  
  Rs.LockType = adLockOptimistic

  Rs.Source = "Select * From " & tblName 'ganze Tabelle

  Rs.Open 'Tabelle öffnen

End Sub
Tipp 6: Datensätze aus einer Tabelle lesen

Dieser Tipp zeigt Ihnen, wie Sie mit ADO den aktuellen Datensatz aus einer Tabelle lesen können. Dabei wird von einer gültigen Verbindung zu einer Datenbank und von einer geöffneten Tabelle ausgegangen.

Option Explicit

Public Cn As New ADODB.Connection
Public Rs As New ADODB.Recordset

Public Function ReadDataRecord(fldName) As Variant

  'Wert anhand des Feldnamens auslesen
  If Not IsNull(Rs.Fields(fldName).Value) Then  

    ReadDataRecord = Rs.Fields(fldName).Value

  End If

End Function
Tipp 7: Navigation durch Datensätze einer Tabelle

In diesem Tipp geht es darum, wie man mit Hilfe von ADO durch die Datensätze einer Tabelle navigiert. Dabei wird von einer gültigen Verbindung zu einer Datenbank und von einer geöffneten Tabelle ausgegangen.

Option Explicit

Public Cn As New ADODB.Connection
Public Rs As New ADODB.Recordset

Public Sub NextDataRecord() 'Datensatzcursor vorwärts bewegen

  On Error Resume Next

  Rs.MoveNext

  If Rs.EOF = True Then 'Wenn Ende der Tabelle überschritten

    Rs.MoveLast 'Datensatzcursor zum letzten Datensatz bewegen

  End If

End Sub

Public Sub PreviousDataRecord()'Datensatzcursor zurück bewegen

  On Error Resume Next

  Rs.MovePrevious

  If Rs.BOF =True Then 'Wenn Anfang der Tabelle unterschritten

    Rs.MoveFirst 'Datensatzcursor zum ersten Datensatz bewegen

  End If

End Sub

Public Sub LastDataRecord()

  On Error Resume Next

  Rs.MoveLast 'Datensatzcursor zum letzten Datensatz bewegen

End Sub

Public Sub FirstDataRecord()

  On Error Resume Next

  Rs.MoveFirst 'Datensatzcursor zum ersten Datensatz bewegen

End Sub
Tipp 8: Einen neuen Datensatz anlegen

Dieser Tipp beschreibt, wie Sie mit ADO einen neuen Datensatz in einer Tabelle anlegen und ihn mit Werten füllen. Dabei wird von einer gültigen Verbindung zu einer Datenbank und von einer geöffneten Tabelle ausgegangen.

Option Explicit

Public Cn As New ADODB.Connection
Public Rs As New ADODB.Recordset

Public Sub NewDataRecord()

  Rs.AddNew 'Neuen Datensatz erzeugen

  'Beispiele für Zuweisung von Werten an Tabellenfelder
  Rs.Fields("Feld1") = "Wert1"
  Rs.Fields("Feld2") = "Wert2"
  Rs.Fields("Feld3") = "Wert3"

  Rs.Update 'Neuen Datensatz anlegen und Tabelle aktualisieren

End Sub
Tipp 9: Vorhandene Datensätze bearbeiten

Dieser Tipp zeigt, wie Sie über ADO die Werte vorhandener Datensätze beliebig verändern können. Dabei wird von einer gültigen Verbindung zu einer Datenbank und von einer geöffneten Tabelle ausgegangen.

Option Explicit

Public Cn As New ADODB.Connection
Public Rs As New ADODB.Recordset

Public Sub EditDataRecord(fldName As String, NewValue As _ Variant)

  Rs.Fields(fldName) = NewValue 'Neuen Wert zuweisen

  Rs.Update 'Tabelle aktualisieren

End Sub
Tipp 10: Einen Datensatz löschen

Wie man einen Datensatz mittels ADO inkl. Benutzerabfrage löscht und die zugrunde liegende Tabelle gleichzeitig aktualisiert, soll dieser Tipp zeigen. Dabei wird von einer gültigen Verbindung zu einer Datenbank und von einer geöffneten Tabelle ausgegangen.

Option Explicit

Public Cn As New ADODB.Connection
Public Rs As New ADODB.Connection

Public Function DeleteDataRecord() As Boolean

  Dim Antwort As VBMsgBoxResult
  
  'Sicherheitshalber vor dem Löschen den Benutzer fragen
  Antwort = MsgBox("Aktuellen Datensatz wirklich löschen?", _
  vbQuestion + vbYesNo, "Löschen?")

  If Antwort = vbYes Then

    Rs.Delete 'Aktuellen Datensatz löschen
    Rs.MoveNext 'Datensatzcursor neu setzen
    Rs.Update 'Tabelle aktualisieren
    
    DeleteDataRecord = True

  Else

    DeleteDataRecord = False

  End If

End Function


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0