Suche in einer Access Datenbank

Knuddel

Grünschnabel
Hey Leute,

Habe folgendes Problem:

Habe ein Suchfunktion geschrieben die meine Access Datenbank durchsucht, aber leider weiss ich nicht wie ich meiner Funktion sagen soll, das sie auch einzelne Wörter sucht und erkennt, bis jetzt klappt es nur wenn ich den vollständigen Namen eingebe. Könnt ihr mir da weiter helfen

hier die Funktion:

Code:
Public Function Suchen(Kategorien As medioKategorie, Begriff As String) As Boolean
Dim i As Integer

With m_rBlaBla
    .MoveFirst
    
    For i = 0 To .RecordCount - 1
        If .Collect(Kategorien) = Begriff Then
            Suchen = True
            Exit For
        End If
    .MoveNext
    Next i
    
    If Suchen = True Then
        MsgBox "Gefunden"
        Refresh
        Suchen = True
    Else
        MsgBox "nichts"
        Suchen = False
        .MoveFirst
        Refresh
    End If
End With
End Function

hier noch medioKategorie:

Code:
Public Enum medioKategorie
test = 0
test1 = 1
test2 = 2
test3 = 3
test4 = 4
End Enum

MfG
Knuddel
 
Hallo
Du kannst es mal so versuchen:
Code:
If .Collect(Kategorien) Like & "%" & Begriff & "%" Then
' oder
If .Collect(Kategorien) Like & "*" & Begriff & "*" Then
 
Hey cool funktioniert, danke.

Habe dann gleich noch ne Frage, also die such geht ja jetzt sowie ich das haben will, aber wie kann ich dann die Anzeige so machen, nach dem suchen, das mir alle Einträge mit dem gesuchten Wort hintereinander angezeigt werden. Weil bis jetzt springt er zum ersten Eintrag mit dem gesuchten Wort und wenn man dann weiter geht ist wieder nen ganz anderer Eintrag. Habt ihr nen tip wie ich das lösen könnte.

MfG
Knuddel
 
Warum öffnest du das Recordset nicht gleich gefiltert ? Dann entsprecht dein Recordsetinhalt gleich dem was du suchst.
 
Weil ich mir alle Datenbank Einträge beim starten meines Programmes anzeigen lassen will und erst wenn ich die suche mache, sollen mir die Einträge gefiltert angezeigt werden, bloß das will bei mir nicht so hin hauen. Vielleicht habt ihr doch nen paar tipps wie ich das machen könnte.

MfG Knuddel
 
Na dann die Suchanfrage mit dem Recordset der Anzeige ersetzen bzw. neu füllen. Dann sind in deiner Ansicht nur die gefundenen Einträge.
Oder du Sortierst die Liste nach deiner Bedinung und Sucht dir dann den ersten.
 
Ich weiss das klingt jetzt doof, aber wie füllt man nen Recordset neu. Bin mit dem Datenbanken programmieren noch nicht so bewandert.

MfG
Knuddel
 
Ganz einfach ungefähr so,
Code:
Set RS = CurrentDB.OpenRecordset( <SQLAbfrage-String>, dbDynaSet)

RS ist das Recordsetobjekt und weil es ein Objekt ist musst du bei Zuweisung immer Set davorschreiben. CurrentDB ist in Access die aktuelle Datenbank, dort kann aber auch ein beliebiges geöffnetes Datenbankobjekt stehen.
OpenRecordset ist eine Methode(Funktion) des Datenbankobjektes zum öffnen von Recordsets.
<SQLAbfrage-String> ist bliebige Zeichkette, die entweder einen Tabellenname, Abfragename oder eine String in SQL enthält in der Art "SELECT irgendwas FROM tabelle WHERE das= 1".
 
Zurück