IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Visual Basic - Arbeiten mit einer Access 97 Datenbank in VB



Arbeiten mit einer Access 97 Datenbank in VB

Dieser Artikel zeigt Ihnen, wie man mit VB eine Verbindung zu einer Access 97 Datenbank herstellt, wie man durch die einzelnen Datensätze navigiert und wie das Ausdrucken des DataGrid funktioniert.


Autor: Tobias Surmann (incsoft)
Datum: 31-03-2003, 08:23:33
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 8110x
Rating: 8 (1x 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]



Eine Verbindung zu einer Access 97 Datenbank herstellen (ADO)

Mit ADO (ActiveX Data Objects) kann man z.B. auf eine Access 97 Datenbank und der enthaltenen Tabellen, Datensätze und Abfragen zugreifen. Dieser Artikel 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
Navigation durch Datensätze einer Tabelle (ADO)

In diesem Artikel 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. Der Einfachheit halber habe ich die Erklärungen direkt als Kommentar hinter die betreffenden Codezeilen gestellt.

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
DataGrid ausdrucken (ADO)

Das DataGrid selbst bietet uns leider nicht direkt die Möglichkeit den Inhalt auszudrucken. Dies kann man aber mit einem kleinen Trick dennoch schaffen, denn wir speichern die Anzeige des DataGrids vorher in einer PictureBox, die wir dann nachher zu Papier bringen können. Es sei aber ausdrücklich darauf hingewiesen, dass diese Methode nur den sichtbaren Bereich des DataGrids druckt, eine andere Möglichkeit gibt es leider bisher nicht. Erklärungen habe ich wie immer als Kommentare hinter den betreffenden Zeilen eingefügt.

Option Explicit

Public Sub PrintDataGrid(dGrid As DataGrid, Pic As PictureBox)

  Dim RecSel As Boolean 'Zeilenselektor
  Dim ScrBars As Integer 'Bildlaufleisten
  Dim BackCol As Long 'Hintergrundfarbe
  Dim DivStyle As Integer 'Gitternetztyp
  Dim Margin As Integer 'Rand  
  
  'Einstellungen speichern
  RecSel = dGrid.RecordSelectors
  ScrBars = dGrid.ScrollBars
  BackCol = dGrid.BackColor
  DivStyle = dGrid.RowDividerStyle

  'Eigenschaften des DataGrid für den Druck optimieren
  dGrid.RecordSelectors = False
  dGrid.ScrollBars = dbgNone
  dGrid.BackColor = vbWhite
  dGrid.RowDividerStyle = 1 'schwarze Gitternetzlinien
  dGrid.Refresh 'Anzeige aktualisieren

  'Aktuelle Anzeige in Bild speichern
  Pic.Picture = dGrid.CaptureImage

  'Einstellungen rückgängig machen, damit der Anwender nichts
  'merkt
  dGrid.RecordSelectors = RecSel
  dGrid.ScrollBars = ScrBars
  dGrid.BackColor = BackCol
  dGrid.RowDividerStyle = DivStyle
  dGrid.Refresh

  'Breite Tabellen besser im Querformat drucken
  Printer.Orientation = vbPRORLandscape
  
  'Bild drucken
  'Margin = Printer.ScaleWidth \ 10
  Printer.PaintPicture Pic.Picture, Margin, Margin, Margin 
  + dGrid.Width, Margin + dGrid.Height

  'Ausdruck starten
  Printer.EndDoc

End Sub


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04503
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16551
Queueeinträge:06236
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: 1136
Comments: 0