title image


Smiley Re: Aktualisierungsabfrage
Tja, dann kann ich Dir nur noch sagen, wie das mit der Zerteilung geht:

Beispiel:

Hnr: 1-111

Mit dieser SQL-Abfrage kriegst Du's getrennt:

SELECT *, Val(Hnr) AS von, Mid(Hnr,1+Instr(1,Hnr,"-")) AS bis

FROM Tabelle

WHERE not Hnr is null



oder

SELECT *, Left(Hnr, Instr(1,HNr, "-")-1) AS Von, Mid(Hnr,1+Instr(1,Hnr,"-")) AS bis

FROM Tabelle

WHERE not Hnr is null



die erste Variante nimmt alle Felder aus der Tabelle, dann versucht die VAL-Funktion den Zahlenwert eines Strings zu ermitteln, soweit es eben geht (hier also bis zum Minus, funktioniert auch mit Leerstelle).

Und dann soll ein Teilstring genommen werden (Mid-Funktion), und zwar von dem Feld Hnr ab der Stelle + 1, bei der in Hnr ein Minuszeichen gefunden wurde. kommt nach dem Minuszeichen noch eine Leerstelle, machst Du halt ein 2 + Instr(... daraus.

In der zweite Variante wird der linke Teil von dem String Hnr genommen, und zwar bis zum Minuszeichen, abzgl. 1, damit das Minuszeichen nicht mitgenommen wird.

Die Where-bedingung schließt alle Datensätze aus, bei denen nix in HNr drinsteht.



Damit bei Datensätzen, bei denen kein Bereich, sondern nur eine Hausnummer drinsteht, kein Fehler passiert, muß noch eine Wenn-dann Geschichte drüber.

SELECT *, Val(Hnr) AS von, iif(instr(1,Hnr,"-")=0,Val(Hnr),Mid(Hnr,1+Instr(1,Hnr,"-"))) AS bis

FROM Tabelle

WHERE not Hnr is null

Wenn kein Minuszeichen gefunden wurde, nimmt Access als bis-Bereich halt die von-HNr.



Du kannst das auch abspeichern in zwei Tabellen-Felder, die von und bis heißen:

UPDATE Tabelle

SET von = Val(Hnr),

bis = iif(instr(1,Hnr,"-")=0,Val(Hnr),Mid(Hnr,1+Instr(1,Hnr,"-")))

WHERE not Hnr is null



Viel Erfolg noch!

Robert



















geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: