Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Zugriff auf Access ( lesend )
Hier ein Codebeispiel um auf eine DAO-Accessdatenbank zuzugreifen und gezielt bestimmte Datensätze auszulesen.
Diese DB heißt Test und liegt direkt unter C:\
Die Tabelle, aus welcher die Daten kommen, heißt "Namensliste".
 
 
Option Explicit
 
Private Sub CommandButton1_Click()
'###########################################
'Unter Extras - Verweise - Häkchen bei "Microsoft DAO 3.6 Object Library" setzen
'##########################################
'Variablendeklaration
   Dim DB As Database
   Dim RS As Recordset
   Dim lngI As Long
   Dim lngAnz As Long
   Dim strPfad As String
   Dim strSQL As String
  
   strPfad = "C:\Test"
   'SQL-String zusammenbasteln
   strSQL = "Select * from Namensliste where Namensliste.Name like '" & CStr(TextBox1.Value) & "'"
  
   Set DB = Workspaces(0).OpenDatabase(strPfad)
   'Feststellen ob Eintrag in Textfeld. Falls nicht dann Abbruch
       If TextBox1.Value = "" Then
        MsgBox "Bitte einen Wert eingeben!"
            Set DB = Nothing
        Exit Sub
       End If
      'Recordset
     Set RS = DB.OpenRecordset(strSQL, dbOpenDynaset)
     'Falls der Eintrag nicht gefunden wird Meldung und Abbruch
    If RS.BOF And RS.EOF = True Then  ' Recordset ist leer
      MsgBox "Der Suchbegriff " & TextBox1.Value & " wurde nicht gefunden!"
              Set RS = Nothing
              Set DB = Nothing
      Exit Sub
    End If
   'Zählen der gefundenen Datensätze und Prüfung, ob mehr als 65536 bzw 65000
   'Falls mehr dann Abbruch
      RS.MoveLast
        lngAnz = RS.RecordCount
   RS.MoveFirst
   If lngAnz > 65000 Then
   MsgBox "Zuviele Datensätze für Excel!" & vbCr & _
   "Der Vorgang wird abgebrochen"
   Set RS = Nothing
   Set DB = Nothing
   Exit Sub
   Else
   'Ausgabe der gefundenen Treffer
   MsgBox "Die Abfrage liefert " & lngAnz & " Datensätze"
   End If
   'Gefundene Daten werden in Excel-Tabelle1-SpalteA+B eingetragen
  
'Start unter Überschrift
    lngI = 2
  
'Schleife um die Daten aus dem Recordset zu lesen und Übertragung in Zielzellen
   Do Until RS.EOF
        Worksheets("Tabelle1").Cells(lngI, 1).Value = RS!Name
        Worksheets("Tabelle1").Cells(lngI, 2).Value = RS!Ort
      RS.MoveNext
      lngI = lngI + 1
    Loop
RS.Close
DB.Close
  
   Set RS = Nothing
   Set DB = Nothing
 
    
End Sub
 
Zu diesem Zweck habe ich zuvor ein kleines Userform erstellt.