In meiner Abfrage habe ich im Feld PLZ das hier eingesetzt.
Zwischen [Von PLZ] Und [Bis PLZ]
Jetzt erhalte ich 2 Eingabeaufforderungen.
Da aber meine 2. Eingabe immer "Von PLZ" +1 ist,
würde ich das gern automatisch haben, also keine 2. Eingabe mehr machen.
Wenn ich also alle Kunde des PLZ-Gebiets 10 haben will möchte ich nur noch die 10, aber nicht mehr die 11 eingeben müssen.
Ich habe mal versucht mit diesem Ausdrucksgenerator das zu gestalten...Das war nichts....
Kann mir da jemand nen Tipp geben?
Vielen Dank
Gruß Achim
Hi,
was passiert bei:
Zwischen val([Von PLZ]) Und val([Von PLZ]) + 1
Hallo,
ZitatWenn ich also alle Kunde des PLZ-Gebiets 10 haben will möchte ich nur noch die 10, aber nicht mehr die 11 eingeben müssen
Ich gehe davon aus, dass es sich bei PLZ um ein TEXTFELD handelt (so wie es sein soll)!
Stelle als Kriterium bei der Postleitzahl ein:
LIKE [PLZ Bereich] & "*"
Damit kannst du alle möglichen 'Startwerte' angeben ... 10, 12, 1, usw.
Ja, das Feld PLZ ist ein Textfeld.
Es geht keine der beiden Lösungen.
Weder die VAL, noch die LIKE.
Da es sich um ein Textfeld handelt, habe ich schon an eine Art ähnlich einer VBA Lösung gedacht.
Ich frage einfach nur die PLZ nach den ersten beiden Stellen und kürze dann den 5-stelligen PLZ String auf 2 Stellen ab. Ungefähr so: LEFT(PLZ,2)
Aber über den Ausdrucksgenerator geht das nicht.
Kann man das bei SQL einfügen?
ZitatEs geht keine der beiden Lösungen.
Zu ergänzen wäre: In DEINER Ausführung.
An sich wird die Like-Variante funktionieren. Und: Das ist so pures SQL.
Ich habe NULL Plan von SQL.
Wenn ich die Abfrage öffne und dann auf SQL Ansicht klicke, kommt das hier.
SELECT [Kunden - sortiert nach Name].ID, [Kunden - sortiert nach Name].Kunde, [Kunden - sortiert nach Name].Adresse, [Kunden - sortiert nach Name].PLZ, [Kunden - sortiert nach Name].Ort, [Kunden - sortiert nach Name].Tel, [Kunden - sortiert nach Name].Fax, [Kunden - sortiert nach Name].Bemerkung, [Kunden - sortiert nach Name].Branche, [Kunden - sortiert nach Name].KNR, [Kunden - sortiert nach Name].Rabatt, [Kunden - sortiert nach Name].Zuletzt_Geaendert, [Kunden - sortiert nach Name].Distanz
FROM [Kunden - sortiert nach Name]
GROUP BY [Kunden - sortiert nach Name].ID, [Kunden - sortiert nach Name].Kunde, [Kunden - sortiert nach Name].Adresse, [Kunden - sortiert nach Name].PLZ, [Kunden - sortiert nach Name].Ort, [Kunden - sortiert nach Name].Tel, [Kunden - sortiert nach Name].Fax, [Kunden - sortiert nach Name].Bemerkung, [Kunden - sortiert nach Name].Branche, [Kunden - sortiert nach Name].KNR, [Kunden - sortiert nach Name].Rabatt, [Kunden - sortiert nach Name].Zuletzt_Geaendert, [Kunden - sortiert nach Name].Distanz
HAVING ((([Kunden - sortiert nach Name].PLZ) Between [Von PLZ] And [Bis PLZ]))
ORDER BY [Kunden - sortiert nach Name].PLZ;
So, dann habe ich diesen Code mit dem Like da mal eingebaut.
Dann sieht das so aus...
SELECT [Kunden - sortiert nach Name].ID, [Kunden - sortiert nach Name].Kunde, [Kunden - sortiert nach Name].Adresse, [Kunden - sortiert nach Name].PLZ, [Kunden - sortiert nach Name].Ort, [Kunden - sortiert nach Name].Tel, [Kunden - sortiert nach Name].Fax, [Kunden - sortiert nach Name].Bemerkung, [Kunden - sortiert nach Name].Branche, [Kunden - sortiert nach Name].KNR, [Kunden - sortiert nach Name].Rabatt, [Kunden - sortiert nach Name].Zuletzt_Geaendert, [Kunden - sortiert nach Name].Distanz
FROM [Kunden - sortiert nach Name]
GROUP BY [Kunden - sortiert nach Name].ID, [Kunden - sortiert nach Name].Kunde, [Kunden - sortiert nach Name].Adresse, [Kunden - sortiert nach Name].PLZ, [Kunden - sortiert nach Name].Ort, [Kunden - sortiert nach Name].Tel, [Kunden - sortiert nach Name].Fax, [Kunden - sortiert nach Name].Bemerkung, [Kunden - sortiert nach Name].Branche, [Kunden - sortiert nach Name].KNR, [Kunden - sortiert nach Name].Rabatt, [Kunden - sortiert nach Name].Zuletzt_Geaendert, [Kunden - sortiert nach Name].Distanz
HAVING ((([Kunden - sortiert nach Name].PLZ)LIKE [PLZ Bereich] & "*"
ORDER BY [Kunden - sortiert nach Name].PLZ;
Natürlich Fehlermeldung....
Schade, am besten wäre die Lösung mit VBA.
Wie ich es geschrieben habe. Einfach von den 5 Stellen der PLZ die ersten 2 nehmen.
Aber wo, bzw. wie kann ich die kürzen?
Ich habe ne Menge VBA Code in den ganzen Formularen, aber in einer Abfrage?
In den Formulareigenschaften kann man in den VBA-Code springen, aber in der Abfrage geht das wohl nicht.
Es muss doch irgendwie möglich sein in der Entwurfsansicht als Filterkriterium zu sagen, nur die ersten beiden Stellen berücksichtigen.....
Hallo,
ZitatNatürlich Fehlermeldung....
Ich denke es wird an den 'vergessenen' Klammern in deiner Abfragegestaltung im LIKE-Bereich liegen
SELECT [Kunden - sortiert nach Name].ID, [Kunden - sortiert nach Name].Kunde, [Kunden - sortiert nach Name].Adresse, [Kunden - sortiert nach Name].PLZ, [Kunden - sortiert nach Name].Ort, [Kunden - sortiert nach Name].Tel, [Kunden - sortiert nach Name].Fax, [Kunden - sortiert nach Name].Bemerkung, [Kunden - sortiert nach Name].Branche, [Kunden - sortiert nach Name].KNR, [Kunden - sortiert nach Name].Rabatt, [Kunden - sortiert nach Name].Zuletzt_Geaendert, [Kunden - sortiert nach Name].Distanz
FROM [Kunden - sortiert nach Name]
GROUP BY [Kunden - sortiert nach Name].ID, [Kunden - sortiert nach Name].Kunde, [Kunden - sortiert nach Name].Adresse, [Kunden - sortiert nach Name].PLZ, [Kunden - sortiert nach Name].Ort, [Kunden - sortiert nach Name].Tel, [Kunden - sortiert nach Name].Fax, [Kunden - sortiert nach Name].Bemerkung, [Kunden - sortiert nach Name].Branche, [Kunden - sortiert nach Name].KNR, [Kunden - sortiert nach Name].Rabatt, [Kunden - sortiert nach Name].Zuletzt_Geaendert, [Kunden - sortiert nach Name].Distanz
HAVING ((([Kunden - sortiert nach Name].PLZ)LIKE [PLZ Bereich] & "*"))
ORDER BY [Kunden - sortiert nach Name].PLZ;
EDIT:
Zitataber in der Abfrage geht das wohl nicht
Abfrage Entwurf .... Ansicht ... SQL-Ansicht ?!
ZitatNatürlich Fehlermeldung....
Diese ausdrucken, abheften und vergraben, aber ja nicht ansehen - es könnte ja ein Hinweis zum konkreten Anlass des Fehlers geliefert werden.
ZitatSchade, am besten wäre die Lösung mit VBA
Genau, und in China kommt man mit Spanisch am weitesten.
ZitatIch habe NULL Plan von SQL.
Wenn man vergleichsweise als Autofahrer keine Verkehrszeichen kennt, sollte man gewisse Überlegungen anstellen ...
Vielleicht solltest Du mal Deine Einstellung überprüfen.
PARAMETERS
PLZ_Bereich Text
;
SELECT
ID,
Kunde,
Adresse,
PLZ,
Ort,
Tel,
Fax,
Bemerkung,
Branche,
KNR,
Rabatt,
Zuletzt_Geaendert,
Distanz
FROM
[Kunden - sortiert nach Name]
WHERE
PLZ LIKE [PLZ_Bereich] & "*"
ORDER BY
PLZ
;(Bei mir funktioniert so etwas.)
Eine Gruppierung über alle vorhandenen Felder einschließlich ID(!) dürfte funktionsfrei sein, macht allerdings etwas Aufwand für die Maschine. Dies habe ich entfernt wie auch einiges anderes.
Vielleicht hebt das die Übersicht.
Siehe auch SQL ist leicht (0) - Vorspiel (http://www.ms-office-forum.net/forum/showthread.php?t=317692).
Wow!
Ist es denn die "Bility"....
LIKE [PLZ Bereich] & "*"))
Jetzt funktioniert es genau nach meinen Vorstellungen..
Vielen Dank für die Hilfe...
Schönen Abend noch