Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Frage zur Suche in Tabellen

Begonnen von Gockel67, Dezember 05, 2025, 15:44:37

⏪ vorheriges - nächstes ⏩

Gockel67

Moin Gemeinde,

da ich so etwas bisher noch nie gemacht habe, habe ich mir ein Beispiel auf dem Internet gesucht welches für meine Zwecke auch funktioniert.

    Dim strSuchwert As String
    Dim strSQL As String
    Dim rs As DAO.Recordset

    strSuchwert = Me.ID

    ' SQL-Abfrage mit Platzhalterparameter erstellen
    strSQL = "SELECT * FROM tblKartenDokumente WHERE ID_Haupttabelle LIKE '*" & strSuchwert & "*';"

    ' Recordset öffnen und an ein Ergebnis-Formular binden
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

    If Not rs.EOF Then
        ' Ergebnis-Formular öffnen und Recordset übergeben (oder Daten direkt anzeigen)
        lblDokument.Visible = True
    Else
        lblDokument.Visible = False
    End If

    rs.Close


    ' SQL-Abfrage mit Platzhalterparameter erstellen
    strSQL = "SELECT * FROM tblKartenVideo WHERE ID_Haupttabelle LIKE '*" & strSuchwert & "*';"

    ' Recordset öffnen und an ein Ergebnis-Formular binden
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

    If Not rs.EOF Then
        ' Ergebnis-Formular öffnen und Recordset übergeben (oder Daten direkt anzeigen)
        lblVideo.Visible = True
    Else
        lblVideo.Visible = False
    End If

    rs.Close

Meine Frage: Lässt sich das ganze kompriemieren bzw. beschleunigen oder gibt es noch andere Möglichkeiten?

Liebe Grüße und ein schönes Wochenende
Jörg

PhilS

Zitat von: Gockel67 am Dezember 05, 2025, 15:44:37habe ich mir ein Beispiel auf dem Internet gesucht welches für meine Zwecke auch funktioniert.
Gegen dein Vorgehen ist vom Prinzip her nichts einzuwenden.

Kürzer schreiben könnte man es so:
Me.lblVideo.Visible = DCount("*","tblKartenVideo", "ID_Haupttabelle LIKE '*" & strSuchwert & "*'") Viel wichtiger als die Länge des Codes, ist aber ob du ihn verstehst. Wenn deine Fassung für dich verständlicher ist, dann bleibe dabei.

Was hier aber als merkwürdig auffällt ist das: "ID_Haupttabelle LIKE '*" & strSuchwert & "*'"
Eine ID ist normalerweise ein Wert, den man als ganzes betrachtet. Eine Suche mit LIKE erscheint da potenziell falsch zu sein.
Wenn du auf exakte Übereinstimmung prüfen willst, dann so: "ID_Haupttabelle = '" & strSuchwert & "'"
Das wird höchstwahrscheinlich auch deutlich schneller ausgeführt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Gockel67

#2
Hallo PhilS,

danke für deine Antwort. Du hast natürlich recht. Das Like wird hier nicht benötigt. Wenn ich allerdings deine Ergänzung ohne das Like einfüge bekomme ich die Fehlermeldung Datentypenkonflikt. Deine Zeile mit Like funktioniert.

Liebe Grüße
Jörg

P.S. Hat sich erledigt. Hab den Fehler gefunden. Einfach die ' raus und es funktioniert wunderbar.