Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Vba Excel Check, ob Datensatz in Access vorhanden?

Vba Excel Check, ob Datensatz in Access vorhanden?
26.03.2018 10:09:21
Hannes
Hallo zusammen,
ich versuche seit geraumer Zeit eine Möglichkeit zu finden, wie ich aus Excel heraus checken kann, ob in einer Access Datenbank ein Datensatz schon existiert oder nicht.
Bisher bin ich auf DCount aufmerksam geworden, jedoch finde ich keine Möglichkeit dieses über ein VBA Makro einzubauen, sondern lediglich in Access in ein Makro einzubauen.
Hat da jemand eine schlaue Lösung?
Wäre super nett.
Liebe Grüße
Hannes
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Access - Datensatz vorhanden...
26.03.2018 11:01:27
Case
Hallo, :-)
... kannst Du so prüfen: ;-)
Option Explicit
' Pfad- und Dateiname anpassen!
Const strFileName As String = "C:\Temp\Test.mdb"
Public Sub CreateDataBase()
Dim rcsEntry As Object
Dim objConn As Object
On Error GoTo Fin
Set objConn = CreateObject("ADODB.Connection")
Set rcsEntry = CreateObject("ADODB.Recordset")
With objConn
.CursorLocation = 3 ' = adUseClient
' "Microsoft.Jet.OLEDB.4.0"
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Properties("Data Source") = strFileName
.Open
End With
With rcsEntry
.ActiveConnection = objConn
.CursorLocation = 3 ' = adUseClient
.LockType = 3 ' = adLockOptimistic
.CursorType = 1 ' = adOpenKeyset
' Name ist die Bezeichnung der Tabelle
.Source = "SELECT * FROM Name"
.Open
If .RecordCount  0 Then
.MoveFirst
End If
' Remark ist die Bezeichnung der Spalte
.Find "Remark = " & "'" & Tabelle1.Cells(1, 1).Value & "'"
If .EOF Then
MsgBox "ID in Datenbank nicht vorhanden!"
Else
MsgBox "ID gefunden!"
End If
End With
Fin:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " (" & Err.Description & ")"
If Not objConn Is Nothing And objConn.State = 1 Then objConn.Close
Set rcsEntry = Nothing
Set objConn = Nothing
End Sub
Du musst es natürlich noch an Deine Gegebenheiten anpassen. Pfad- und Dateiname, Tabellenname und Spaltenname. Ist im Code beschrieben. Der Suchbegriff steht in Tabelle1 A1.
Servus
Case

Anzeige
AW: Access - Datensatz vorhanden...
26.03.2018 11:15:01
Hannes
Ja wahnsinn....
Vielen Dank für deine ANtwort. Probiere ich gleich aus, aber von der Logik her macht das wirklich Sinn.
Liebe Grüße
Hannes
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Excel: Check, ob Datensatz in Access vorhanden ist


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob ein Datensatz in einer Access-Datenbank vorhanden ist, kannst Du das folgende VBA-Skript verwenden. Stelle sicher, dass Du den Pfad zur Datenbank sowie die Namen der Tabelle und Spalte anpasst.

Option Explicit
' Pfad- und Dateiname anpassen!
Const strFileName As String = "C:\Temp\Test.mdb"

Public Sub CreateDataBase()
    Dim rcsEntry As Object
    Dim objConn As Object
    On Error GoTo Fin
    Set objConn = CreateObject("ADODB.Connection")
    Set rcsEntry = CreateObject("ADODB.Recordset")

    With objConn
        .CursorLocation = 3 ' = adUseClient
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .Properties("Data Source") = strFileName
        .Open
    End With

    With rcsEntry
        .ActiveConnection = objConn
        .CursorLocation = 3 ' = adUseClient
        .LockType = 3 ' = adLockOptimistic
        .CursorType = 1 ' = adOpenKeyset
        .Source = "SELECT * FROM Name" ' Name ist die Bezeichnung der Tabelle
        .Open

        If .RecordCount > 0 Then
            .MoveFirst
        End If

        ' Remark ist die Bezeichnung der Spalte
        .Find "Remark = '" & Tabelle1.Cells(1, 1).Value & "'"

        If .EOF Then
            MsgBox "ID in Datenbank nicht vorhanden!"
        Else
            MsgBox "ID gefunden!"
        End If
    End With

Fin:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & " (" & Err.Description & ")"
    If Not objConn Is Nothing And objConn.State = 1 Then objConn.Close
    Set rcsEntry = Nothing
    Set objConn = Nothing
End Sub

Häufige Fehler und Lösungen

  • Fehler: "Fehler: 3343 (Unrecognized database format)"

    • Lösung: Stelle sicher, dass der Pfad und der Dateiname korrekt sind und die Datenbank im richtigen Format vorliegt.
  • Fehler: "ID in Datenbank nicht vorhanden!"

    • Lösung: Überprüfe, ob der Wert in Tabelle1.Cells(1, 1) tatsächlich in der Access-Datenbank vorhanden ist.

Alternative Methoden

Eine alternative Methode, um zu prüfen, ob ein Datensatz in einer Access-Datenbank vorhanden ist, besteht darin, SQL-Abfragen direkt in Access zu verwenden. Du kannst auch das Access-Datenbankmodul nutzen, um Abfragen zu erstellen, die diese Überprüfung durchführen.


Praktische Beispiele

Angenommen, Du möchtest überprüfen, ob ein Kunden-ID in der Tabelle „Kunden“ vorhanden ist:

  1. Ändere im obigen Beispiel Name zu Kunden.
  2. Ändere Remark zu KundenID, um die richtige Spalte zu referenzieren.
  3. Füge einen Wert in Tabelle1.Cells(1, 1) ein, um die Suche zu testen.

Tipps für Profis

  • Nutze die adUseClient-Option, um die Leistung zu verbessern, wenn Du mit großen Datenmengen arbeitest.
  • Implementiere Error-Handling, um eine robustere Anwendung zu erstellen.
  • Teste Deinen Code regelmäßig, um sicherzustellen, dass alle Anpassungen korrekt funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Datensätze in Access abfragen?
Du kannst eine SELECT-Anweisung mit WHERE-Klauseln erweitern, um mehrere Datensätze zu suchen.

2. Muss ich Access-Referenzen in VBA setzen?
Nein, Du kannst mit CreateObject arbeiten, um die benötigten Objekte zu erstellen, ohne Referenzen in Excel zu setzen.

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