Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Feldname in Access DB variabel ansprechen

Forumthread: Feldname in Access DB variabel ansprechen

Feldname in Access DB variabel ansprechen
Ano
Hallo,
ich möchte über eine ADODB Connection Felder in einer Access-tabelle dynamisch - sprich mit einer Variablen - ansprechen. Hintergrund: Ich lese den Namen des benannten Bereich der aktiven Zelle aus und möchte diesen Namen als Variable nach Acces übergeben an das Feld (des aktuellen Datensatzes ) mit dem gleichen Namen.
Ich habe schon viel probiert, komme aber an dieser Stelle nicht voran. Vielleicht kann mir jemand einen Tipp geben? Danke schon mal im Voraus!

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Feldname in Access DB variabel ansprechen
29.08.2012 04:04:34
Luschi
Dim rs As ADODB.Recordset
Hallo Ano Nym,
so sollte es klappen:

Dim tblMyTab As String
Dim fldMyFeld As String
Dim suchText As String
'... weitere Definitionen ...
tblMyTab = "HauptTabelle"
fldMyFeld = "Ort"
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "Select * From " & tblMyTab,  _
CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.Find "Beruf = 'Minister'", , adSearchForward, 1
If Not rs.NoNarch Then
MsgBox rs.Fields(fldMyFeld).Value
End If
'usw.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Feldname in Access DB variabel ansprechen
29.08.2012 20:28:28
webmaster@dirkkaben.de
Hallo Luschi, danke für den Tipp! Gruß Dirk
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamisches Ansprechen von Feldnamen in Access DB über Excel


Schritt-für-Schritt-Anleitung

Um ein Feld in einer Access-Datenbank dynamisch über eine ADODB-Verbindung anzusprechen, kannst Du die folgenden Schritte befolgen:

  1. Erstelle eine ADODB-Verbindung: Stelle sicher, dass Du die erforderlichen Verweise in Deinem VBA-Editor aktiviert hast. Gehe zu Extras -> Verweise und aktiviere Microsoft ActiveX Data Objects x.x Library.

  2. Definiere die Variablen: Lege alle notwendigen Variablen für Deine Tabelle und das Feld fest. Hier ein Beispiel:

    Dim tblMyTab As String
    Dim fldMyFeld As String
    tblMyTab = "HauptTabelle"
    fldMyFeld = Range("A1").Value ' Hier wird der Name des Feldes aus Zelle A1 gelesen
  3. Öffne die Recordset: Verwende die ADODB.Recordset, um auf die Daten zuzugreifen:

    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM " & tblMyTab, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  4. Finde den Datensatz: Nutze die Find-Methode, um einen bestimmten Datensatz zu suchen:

    rs.Find "Beruf = 'Minister'"
  5. Zugriff auf das Feld: Greife dynamisch auf das Feld zu, das Du in der Variablen fldMyFeld gespeichert hast:

    If Not rs.NoMatch Then
        MsgBox rs.Fields(fldMyFeld).Value
    End If

Häufige Fehler und Lösungen

  • Fehler: "NoMatch": Dies passiert, wenn der gesuchte Datensatz nicht gefunden wird. Stelle sicher, dass der Suchbegriff korrekt ist und dass der Datensatz existiert.

  • Fehler: "Item not found in this collection": Überprüfe, ob der Feldname in fldMyFeld tatsächlich in der Tabelle existiert. Ein Tipp ist, den Feldnamen direkt in Access zu überprüfen.


Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, kannst Du auch Power Query in Excel nutzen, um Daten aus Access zu importieren. Hierbei hast Du eine visuelle Oberfläche und kannst Felder manuell auswählen.

  1. Gehe zu Daten -> Abfragen und Verbindungen -> Neue Abfrage.
  2. Wähle Aus Datenbank -> Aus Access-Datenbank.
  3. Wähle die gewünschte Datei und die Tabelle aus und lade die Daten in Excel.

Praktische Beispiele

Hier ist ein praktisches Beispiel, das die obigen Schritte zusammenfasst:

Sub DynamischesZugreifen()
    Dim tblMyTab As String
    Dim fldMyFeld As String
    tblMyTab = "HauptTabelle"
    fldMyFeld = Range("A1").Value ' Feldname aus Zelle A1

    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM " & tblMyTab, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

    rs.Find "Beruf = 'Minister'"
    If Not rs.NoMatch Then
        MsgBox "Der Wert im Feld '" & fldMyFeld & "' ist: " & rs.Fields(fldMyFeld).Value
    End If
End Sub

Tipps für Profis

  • Nutze Error Handling, um Fehler abzufangen und eine bessere Benutzererfahrung zu bieten.
  • Überlege, die Feldnamen in einer Liste zu speichern, um die Flexibilität beim Zugriff auf verschiedene Felder zu erhöhen.
  • Wenn Du mit mehreren Datensätzen arbeitest, erwäge, eine Schleife zu verwenden, um alle Ergebnisse durchzugehen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Feldname korrekt ist?
Überprüfe den Feldnamen direkt in der Access-Datenbank, um sicherzustellen, dass er keine Tippfehler enthält.

2. Was tun, wenn ich keine Verbindung zur Datenbank herstellen kann?
Stelle sicher, dass die Datenbankdatei nicht beschädigt ist und dass Du die richtigen Berechtigungen hast, um auf sie zuzugreifen. Prüfe auch die Verbindungszeichenfolge in Deinem VBA-Code.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige