Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Gockel67 am Oktober 13, 2024, 11:37:19

Titel: Probleme mit FindFirst
Beitrag von: Gockel67 am Oktober 13, 2024, 11:37:19
Moin Gemeinde,

ich habe eine Tabelle (tblEigenschaften) die nur ein Feld (Eigenschaft) und die ID enthält.
Mit einer Form (frmEigenscchaften) kann ich diese Datensätze bearbeiten (also das übliche - Navigation, Neuer Datensatz, Datensatz löschen etc.). Beim laden der Form wird alphabetisch sortiert.

Da es mit der Navigation mühselig ist bis z.B. zum Datensatz zu kommen der mit 'S' anfängt wollte ich Buttons erstellen von A - Z und mit FindFirst zu diesem Datensatz springen.

Aber egal was ich anstelle - es gibt keine Fehlermeldung aber es passiert auch nichts. Das Formular bleibt auf dem ersten Datensatz stehen. Ich hab jetzt schon viele Beispiele aus dem Internet probiert und keiner hat funktioniert.

Hier mal ein Beispiel:

    Eigenschaft.SetFocus
    ' Stringwert suchen, daher die ''
    Me.Recordset.FindFirst "[Eigenschaft] = 'S'"

Was mache ich falsch?
Oder ist die FindFirst Methode für meinen Zweck gar nicht geeignet und ich muss das ganz anders angehen?

Noch zur Information: Ich beschäftige mich mit Access immer nur so weit wie ich es für meine eigentlichen Hobbys benötige. Habt also bitte Nachsicht mit mir  ;D

Schönen Sonntag
Titel: Re: Probleme mit FindFirst
Beitrag von: MzKlMu am Oktober 13, 2024, 11:51:05
Hallo,
Du suchst ja nur nach dem S.
Du musst ein Ersetzungszeichen (Joker) anhängen.
Me.Recordset.FindFirst "[Eigenschaft] = 'S'" & "*"Findet alles was mit s (oder S) beginnt.

Warum suchst Du nicht mit einem Kombifeld ?
Ein Kombi ergänzt die eingegeben Zeichen automatisch und zwar bei jedem Zeichen, sodass man sehr schnell den gewünschten Datensatz findet.
Die Buttons (A-Z) sind dann überflüssig.
Titel: Re: Probleme mit FindFirst
Beitrag von: Gockel67 am Oktober 13, 2024, 12:02:11
Hallo Klaus,

danke für deine schnelle Antowrt.
Deine Lösung produziert leider einen Fehler 3077. Syntaxfehler (fehlender Operator) in Ausdruck.
Ich find das mit den Buttons halt einfach chic  ;)

Schönen Sonntag
Jörg
Titel: Re: Probleme mit FindFirst
Beitrag von: MzKlMu am Oktober 13, 2024, 12:06:05
Hallo,
bitte zeige wie du es gemacht hast.
Und bitte den kompletten Code zeigen und nicht nur die unvollständigen Schnipsel.
Und die Codetags verwenden.
Titel: Re: Probleme mit FindFirst
Beitrag von: Gockel67 am Oktober 13, 2024, 12:08:53
So sieht das aus

Private Sub btnS_Click()

    Eigenschaft.SetFocus
    Me.Recordset.FindFirst "[Eigenschaft] = 'S'" & "*"

End Sub

Schönen Sonntag
Titel: Re: Probleme mit FindFirst
Beitrag von: MzKlMu am Oktober 13, 2024, 12:41:00
Hallo,
mit dem Joker muss Like (Wie) verwendet werden. Außerdem ist der String falsch zusammengesetzt.
Beides hatte ich vorhin auch übersehen.
Me.Recordset.FindFirst "[Eigenschaft] Like 's" & "*'"Oder etwas kürzer:
Me.Recordset.FindFirst "[Eigenschaft] Like 's*'"Das Setfocus braucht es nicht.
Titel: Re: Probleme mit FindFirst
Beitrag von: Bitsqueezer am Oktober 13, 2024, 13:08:39
Hallo,

gibt es übrigens auch kostenlos schon fertig:
https://www.add-in-world.com/katalog/azregister/

Gruß

Christian
Titel: Re: Probleme mit FindFirst
Beitrag von: Gockel67 am Oktober 13, 2024, 13:54:59
Suuuuper.Danke Klaus. So funktioniert es. Werde dich lobend in mein Nachtgebet mit einschließen  ;D
Titel: Re: Probleme mit FindFirst
Beitrag von: Gockel67 am Oktober 13, 2024, 13:56:24
Danke Christian,
das werde ich mir bei Gelegenheit auch mal anschauen.
Titel: Re: Probleme mit FindFirst
Beitrag von: Gockel67 am Oktober 15, 2024, 07:20:36
Noch eine Frage dazu.

Lässt es sich irgendwie abfangen wenn ein Buchstabe noch nicht vergeben ist? Es sollte dann eine Msgbox ausgegeben werden. Bei nichtvorhanden springt er kommentarlos zum ersten Datensatz. Mit NoMatch komme ich irgendwie nicht weiter.

Wünsche allen einen schönen Wochenstart
Titel: Re: Probleme mit FindFirst
Beitrag von: Knobbi38 am Oktober 15, 2024, 12:30:24
Hallo,

findfirst und andere Methoden, welche zum verändern des aktuellen Records geeignet sind, sollte man besser mit einem Recordsetclone machen, dann hat das keine Auswirkungen auf die Anzeige im Formular.