PDA

Vollständige Version anzeigen : 3te und 4te Stelle eines 9-stelligen Codes abfragen


GhosttalkerST
24.03.2006, 20:37
Hallo,

ich habe rund 2000 9stelligen Zahlen in einer Tabelle.
Die dritte und vierte Stelle in jedem Code drücken einen Standort aus.
Somit gibt es Ziffern von 01-16.
Wie kann ich in einer Abfrage diese dritte und vierte Stelle Abfragen.
Unter Kriterien kann ich sonst nur Intervalle wie z.b. >=12345 Und <=67890 abfragen. Problem ist, dass es eine neunstellige Zahl ist, und ich eben nur die Dritte und Vierte abfragen will, da sonst alle unterschiedlich sind.
Gibt es dort in Access mit "*" oder ähnlichem Syntax eine Möglichkeit?

Grüße

Roland04
24.03.2006, 20:55
mit DeineVariable = Left(me.irgendwas, 3,4) (oder right(...)

gpswanderer
24.03.2006, 21:02
In einer Abfrage kannst Du das so lösen.
Standort:Teil([Code];3;2)
Und so in VBA.
Standort = Mid([Code],3,2)
Unterschiedliche Schreibweisen und einmal ";" und einmal "," und Deusch/Englisch

@Roland04
Left und Right liefern nur die linken bzw. rechten Zeichen. In einer Abfrage geht die englische Syntax nicht.

letts
24.03.2006, 21:02
Hallo,

lege in deiner Abfrage eine zusätzliche Spalte an, die als Inhalt nur die 3. + 4. Stelle des Codes anzeigt. Dann kannst du in den Kriterien dieser Spalte gezielt abfragen.


SELECT DeineTabelle.Codefeld, Right(Left([Codefeld],4),2) AS Standort
FROM DeineTabelle;

Grüsse
letts

gpswanderer
24.03.2006, 21:22
Oder etwas einfacher:
SELECT DeineTabelle.Codefeld, Mid([Codefeld],3,2) AS Standort
FROM DeineTabelle;

GhosttalkerST
25.03.2006, 08:39
Danke gpswanderer, deins war am einfachsten! Hat geklappt.

Grüße

fx81
22.07.2008, 16:08
Um Threads zu "sparen" greife ich diesen alten noch einmal auf.
Mein Problem ist diesem ziemlich ähnlich, nur kapiere ich die Lösung nicht :-(

Zusatz: ich will eine Löschanfrage daraus machen. Also alle Datensätze löschen, die in dem Code-Feld an der dritten und vierten Stelle KEINE "80" stehen haben.

Danke im Voraus!
FX

ebs17
22.07.2008, 16:31
Die Mid- (deutsch Teil-) Funktion ist in der Hilfe nachlesbar.

Du würdest einen entsprechenden Ausdruck als Kriterium für Deine Abfrage brauchen, etwa so:
DELETE * FROM DeineTabelle WHERE Mid([Codefeld],3,2) <> "80"

fx81
23.07.2008, 07:27
Super!
Vielen Dank!