Wenn ich in einem Formular via einer Abfrage nach einem Kunden suchen, dann kann es passieren, dass nicht genau der gewünschte Kunde kommt. Das klingt jetzt erst einmal komisch, deswegen muss ich versuchen, es mit einem Beispiel zu erklären:
- ich habe Kundennamen, bei denen bestimmte Buchstabenfolgen identisch sind.
Wenn ich also den Kunden TTM und Wittmann habe und lediglich "TTM" eingebe, dann erhalte ich als Ergebnis die Informationen zu BEIDEN Kunden.
Ich will in diesem Fall aber nur "TTM" aufrufen.
Wie mache ich das?
Hi,
kann es sein, dass in der Art suchst: like *Suchbegriff*
Harald
In dem Formular rufe ich den gewünschten Kunden über ein ungebundenes Kombinationsfeld auf, aber wie zuerst beschrieben, kann es passieren, dass bei gleichlautenden Buchstabenkombinationen die Umsätze von zwei Kunden angezeigt werden.
Gebe ich - wie im Beispiel beschrieben "Wittmann" ein, kommt auch nur der Wittmann Umsatz. Gebe ich aber den Kundennamen "TTM" ein, erhalte ich die Umsätze beider Kunden.
Ich will also erreichen, dass bei Eingabe von "TTM" tatsächlich nur der den Kunden betreffende Umsatz angezeigt wird
Hallo,
zeigt doch mal, WIE die Filterung gemacht wird....
Wenn der Kundenname GENAU übereinstimmen soll, dann ist "Like" mit Jokerzeichen fehl am Platz..
Hallo,
"...In dem Formular rufe ich den gewünschten Kunden über ein ungebundenes Kombinationsfeld auf ... "
Wenn du das Kombifeld so aufbaust, dass in der ersten Spalte die ID des Kunden steht und deine Auswahl nicht über den angezeigten Text erfolgt,
kann es nicht passieren, dass falsche Aufrufe erfolgen.
Die ID der Kunden MUSS eindeutig sein - gib TTM ein und klapp mal das Kombifeld auf - da sollte Wittmann nicht an erster Stelle stehen,
Der Zeiger verweist nach der Eingabe des ersten T auf den ersten Listeneintrag, der mit T beginnt, Wittman beginnt mit W
... das ist die SQL Anweisung aus der Abfrage.
Sorry, es ist kein Kombinationsfeld sondern eine Parameterabfrage.
Hallo Axel,
Zitat von: Axel18 am Oktober 27, 2014, 08:10:05Sorry, es ist kein Kombinationsfeld sondern eine Parameterabfrage.
und wie sieht diese Abfrage aus? Zeig doch bitte den SQL-Code dazu.
Aber im Grunde wurde die Antwort ja bereits gegeben: Wenn du bei der Eingabe von TTM
nicht Wittmund erhalten willst, darfst du
keinen Stern
vor den Suchbegriff setzen.
Mir war nicht bekannt, dass die Senilität langsam um sich greift. Ich wollte doch die SQL Anweisung senden, habe das aber dann vergessen. Hier ist sie nun:
SELECT Kunden.kname1, Kunden.kpostfach, Kunden.kland, Kunden.kplz, Kunden.kort, Kunden.ktel, UmsatzManuelleEingabe.prodNr, UmsatzManuelleEingabe.Bezeichnung, UmsatzManuelleEingabe.kg13, UmsatzManuelleEingabe.kg14
FROM Kunden LEFT JOIN UmsatzManuelleEingabe ON Kunden.ksort = UmsatzManuelleEingabe.ksort
WHERE (((Kunden.ksort) Like "*" & [welcher Kunde] & "*"))
ORDER BY UmsatzManuelleEingabe.prodNr;
WHERE (((Kunden.ksort) Like "*" & [welcher Kunde] & "*"))
Es ist so wie es bereits vermutet wurde, du suchst nach der Zeichenkette mitten im Wort.
Wenn du das nicht willst, musst du den ersten * weglassen.
ja, das habe ich inzwischen auch ausprobiert. Aber dann muss ich bei Wittmann den kompletten Namen eingeben, es würde also nciht "Witt" reichen.
Gibt es nciht eine Methode, die mir "alles" bietet?
Zitat von: Axel18 am Oktober 27, 2014, 13:42:42
Aber dann muss ich bei Wittmann den kompletten Namen eingeben, es würde also nciht "Witt" reichen.
Probier mal bei dem Auswahlfeld im Reiter "Daten" die Eigenschaft "Automatisch ergänzen" auf "ja" zu setzen.
Harald
HAllo,
"Aber dann muss ich bei Wittmann den kompletten Namen eingeben, es würde also nciht "Witt" reichen.
dann hast Du nicht genau gelesen...
Wenn Du so schreibst:
WHERE (((Kunden.ksort) Like [welcher Kunde] & "*"))
dann werden alle Kunden gelistet, die mit "witt" in Ihrem Namen beginnen,
also "Wittmann", "Wittemberger", "Witt","Wittel", aber nicht "Gewitter", "Withaler", etc.
"die mir "alles" bietet?"
Was bedeutet hier "alles"?
ja, Franz, danke, das hat geholfen!