# Feld in Abfrage mit führenden Nullen füllen, aber wie ?



## bluesbounce (1. Oktober 2004)

Hi Hi,

ich habe das Problem, dass ich in einer Access Abfrage ein Feld im Format
12345-123 formatieren muss
die Daten kommen aus zwei Feldern :
START_AGN : [agentur] & "-" & [betriebsstelle]

Das Problem ich muss die fehlenden Nullen vor der [agentur] und der
[betriebsstelle]
ausfüllen, da die Felder in der Tabelle als 123-1, oder 1234-1 oder 1-2
stehen können,
ich benötige aber immer das Feld ausgefüllt mit führenden Nullen.

Über die Formatierung mit # etc. komme ich nicht weiter, hat jemand einen
Tip 

Vielen Dank und Gruß
Alex

Access/Office XP, Win XP


----------



## wincnc (1. Oktober 2004)

Versuch´s mal so:
START_AGN : Format([agentur],00000) & "-" & format([betriebsstelle],000)


----------



## bluesbounce (1. Oktober 2004)

macht er leider nicht Formatfehler ... 

START_AGN : Format([agentur];0) geht, aber da formatiert er nicht ...
Gruß
Alex


----------



## wincnc (1. Oktober 2004)

Entschuldigung habe etwas vergessen:
Anführungszeichen !
START_AGN : Format([agentur],"00000") & "-" & format([betriebsstelle],"000")


----------



## bluesbounce (1. Oktober 2004)

Bingo, nur noch ein Semikolon statt Komma und das Ding rennt :
START_AGN : Format([agentur];"00000") & "-" & Format([betriebsstelle];"000")

VIELEN DANK !


----------



## Wirodo (8. November 2017)

Hi,
Das Thema ist zwar schon sehr alt aber ich habe ein ähnliches Problem nur scheint es mir etwas komplizierter. Um es Einfacher zu halten versuche ich es an dem bisher gezeigten Beispiel anzupassen

Es geht auch in einer Abfrage um ein zusammengebautes Feld:

START_AGN : Format([agentur];"00000") & "-" & Format([betriebsstelle];"00000")

Allerdings ist bei mir [betriebsstelle] nicht nur ein Feld aus einer Tabelle sondern wird berechnet: sieht dann in etwa so aus

START_AGN : Format([agentur];"00000") & "-" & Format(([betriebsstelle]+[betriebsstelle2]*2);"00000")

Durch die Rechnung gehen mir die vorderen beiden "00" verloren.
Wenn ich es so schreibe bekomme ich immer einen Formatfehler von ACCESS...

Kann jemand helfen?


----------



## Yaslaw (8. November 2017)

Das "Sieht etwa so aus" hilft uns nicht beim Fehler finden.
Bitte poste die genaue Formel. Ansonsten haben wir keine Chance einen Fehler zu finden.


----------



## Wirodo (8. November 2017)

ATN: [LandNr] & [Beginn-Auftrag] & *([Beginn-Auftrag]+(([Sendungbis]-[Sendungan]+1)*6)-1)*

Der Fett/Unterstrichene Teil soll 5 Stellen lang sein, durch die Rechnung werden die führenden Nullen gestrichen

Meine Idee war wie folgt:

ATN: [LandNr] & [Beginn-Auftrag] & *Format([*([Beginn-Auftrag]+(([Sendungbis]-[Sendungan]+1)*6)-1)*];"00000")
*
Wird aber ein Format Fehler.


----------



## Yaslaw (8. November 2017)

Was sind das für Feldtypen?
Meine Mutmassung:
Beginn-Auftrag: Datum
Sendungbis: Datum
Sendungan: Datum
Die Differenz von Sendungbis-Sendungan soll in Tagen berechnet werden
Dann haben wir Datum + Differenz*6-1
Dann ergibt der Fette Teil ein Datum. Ein Datum mit 5 Stellen anzeigen ist schwer....

Direkttest

```
BeginnAuftrag = #06/01/2017#
Sendungbis = #06/15/2017#
Sendungan = #06/11/2017#

print_r BeginnAuftrag+((Sendungbis-Sendungan+1)*6)-1
<Date> 30.06.2017
```


----------



## Wirodo (8. November 2017)

Ok mehr Details sind natürlich besser, sehe schon ich muss mehr dazu sagen, Vorab schon mal danke für die schnelle Antwort

Sendungan: Zahl
Sendungbis: Zahl
Beginn-Auftrag: ist ein Teil eines Felder aus einer Abfrage: Beginn-Auftrag: Teil([Feld10];5;5) und Feld10 = Zahl

ATNSoll: z.B. 07825 00589 00595 (Leerzeichen sind nur optisch)
ATN: [LandNr] _07825_ & [Beginn-Auftrag] _00589_ & *Format([*([Beginn-Auftrag]+(([Sendungbis]-[Sendungan]+1)*6)-1)*];"00000") *_00595_
Kursive jeweils das Teilergebniss

ATN IST: 07825 00589 595

Das ganze ist nicht in VBA sondern in einer Abfrage


----------



## Yaslaw (8. November 2017)

Komisch. Das funktioniert eigentlich
(Die Abfragen verwenden dieselben Befehle wir VBA im Dorektfenster. Nur die Schreibweise ist anders)

```
landnr = "07825"
BeginnAuftrag = "00586"
Sendungbis = 8
Sendungan = 5

?LandNr & BeginnAuftrag &  format(BeginnAuftrag+((Sendungbis-Sendungan+1)*6)-1, "00000")
078250058600609
```


----------



## Wirodo (8. November 2017)

Ich hab es jetzt mit weniger Klammern versucht, dein Beispiel als Inspiration, habe mich wohl zu Tode geklammert.

Jetzt sieht es so aus und Funktioniert. DANKE.

ATN: [LandNr] & [Beginn-Auftrag] & Format(([Beginn-Auftrag]+(([Sendungbis]-[Sendungan]+1)*6)-1);"00000")


----------

