Probleme mit FindFirst

Also jetzt habe ich da mal was Programmiert, was nicht läuft.

Dim rs
Dim Angabe(2) as string

Angabe(0) = „7“ 'Gibt den zu suchenden Datensatz an

'Kunden_Nummer ist der Primärschlüssel, nach dem soll gesucht werden,
'nur, wo liegt der Fehler?
'Es wird nämlich immer nur der erste Datensatz gefunden, nicht aber der siebte.

Set rs = CurrentDb.OpenRecordset("SELECT Kunden_Nummer, Firma, Name, Strasse, Nummer, Postfach, PLZ, Ort, Land, Tel, Fax, EMail, Webseite, TelII, FaxII, EMailII, Rabatt " & „FROM Auftrag_Kunden ORDER BY Kunden_Nummer“) 'Öffnet die angegebene Datenbank

With rs
.FindFirst („Kunden_Nummer = '“ & Angabe(0) & „’“)
Form_Auftrag_Kunden_Registrierung.tboxFirma.Value = !Firma
Form_Auftrag_Kunden_Registrierung.comboxAnrede.Value = !Anrede
Form_Auftrag_Kunden_Registrierung.tboxName.Value = !Name
Form_Auftrag_Kunden_Registrierung.tboxVorname.Value = !Vorname
usw…

Danke für jeden Hinweis
Gruss Sebastian

Guten Abend!

Auf den ersten Blick würd ich sagen las mal die () bei Deinem Findfirst weg.

Also statt

.FindFirst („Kunden_Nummer = '“ & Angabe(0) & „’“)

machst Du
.FindFirst „Kunden_Nummer = '“ & Angabe(0) & „’“

Wenns nicht reicht, poste mal die Fehlermeldung?

Gruß Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nächstes Problem
Hallo
Also lasse ich die Klammer weg, oder belasse Sie, so wir die Fehlermeldung
Laufzeitfehler 3464
Datentypen in Kriterienausdruck unverträglich.
angezeigt. Diese Fehlermeldung entsteht, wenn das Programm den FindFirst Befehl einlesen möchte.
Ich Danke für jeden Weiteren Hinweis.

MFG Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Morgen!

Also lasse ich die Klammer weg, oder belasse Sie, so wir die
Fehlermeldung

Mit Klammer war schon OK.

'Es wird nämlich immer nur der erste Datensatz gefunden, nicht
aber der siebte.

Das ist bei „FindFirst“ normal! heisst ja nicht umsonst „Finde den Ersten“! Wenn der zuerst gefundene Datensatz mit den gewählten Kriterien nicht mit dem gewünschten Ergebnis übereinstimmt, dann sind die Kriterien nicht eindeutig genug. Dann bleibt nur mit FindNext nach dem nächsten übereinstimmenden Datensatz zu suchen.

CU, Jan

Nächstes Problem
Hallo Jahn,
aber wenn ich FindFirst auf das Primäre Schlüsselfeld leiten möchte, so muss ich doch nach der Zahl im Schlüsselfeld suchen können. In diesem Falle ist dies ein Schlüssel, welcher sich automatisch hochzählt. Und steht in diesem Schlüsselfeld die Zahl 7, so soll das Schlüsselfeld aktiviert werden. D.H. doch, dass das Feld mit der 7 nur einmal definiert wurde, weil ich angegeben habe, dass keine Doppelzahlen erlaubt sind. Alse ist das Feld ein-eindeutig definiert.

Warum kann ich aber mit dem FindFirst befehl nicht das Schlüsselfeld durchsuchen?

Ich gehe mal davon aus, dass der Code das Schlüsselfeld durchsuchen möchte, aber die Variable nicht stimmt um den Inkrement wert zu vergleichen. Wass soll ich dann da nehmen, wenn String, Integer, variant, double, long nicht funktionieren?

Oder ist die Abfrage beim Select befehl falsch, muss ich den Befehl umschreiben oder so?

Danke für jeden weiteren Hinweis
CU Sebastian

hmm…

Hallo Jan,

mahlzeit!

Warum kann ich aber mit dem FindFirst befehl nicht das
Schlüsselfeld durchsuchen?

Wahrscheinlich deshalb, weil der Inhalt des Primärschlüsselfeldes kein String ist…

Ich gehe mal davon aus, dass der Code das Schlüsselfeld
durchsuchen möchte, aber die Variable nicht stimmt um den
Inkrement wert zu vergleichen. Wass soll ich dann da nehmen,
wenn String, Integer, variant, double, long nicht
funktionieren?

normalerweise funktioniert Integer. Und in diesem Fall sollte auch Variant gehen!

Oder ist die Abfrage beim Select befehl falsch, muss ich den
Befehl umschreiben oder so?

gehe ich mal davon aus…

Was mich atm. noch interessiert: Warum verwendest du in deinem Code ein Array? hat das ein besonderen Grund? Benötigst du die gleiche Variable mehrfach innerhalb des Codes?

Guten Abend!

Laufzeitfehler 3464
Datentypen in Kriterienausdruck unverträglich.

Du schreibst weiter unten, daß das Feld Kunden_Nummer als Primärschlüssel definiert ist, wenn ich richtig gelesen habe.
Das sind aber i.d. Regel Zahlenfelder. Versuche mal die ’ wegzulassen. Die braucht man nur bei Text-Feldern.

Also statt

.FindFirst („Kunden_Nummer = '“ & Angabe(0) & „’“)

machst Du

.FindFirst "Kunden_Nummer = " & Angabe(0)

Und was Jan schreibt mit dem Array, definiere doch einfach mal versuchsweise für einen Durchlauf:

DIM Angabe as Double

Angabe = 7

.FindFirst "Kunden_Nummer = " & Angabe

Gruß
Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]