Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Tabellen-Wert automatisch durch fortlaufenden Wert ergänzen

Begonnen von mohab, März 23, 2015, 10:50:05

⏪ vorheriges - nächstes ⏩

mohab

Hallo zusammen!

ich sehe mich in meiner Datenbank mit einem Problem konfrontiert, zu dem ich momentan nicht den Hauch eines Ansatzes habe. Daher bin ich euch nicht nur für Lösungen, sondern auch schon für jeden Denkimpuls sehr dankbar. Ich versuche mal mein Problem zu schildern:

Es dreht sich um die 2 Haupttabellen der Datenbank.
In tbl1 werden Auftragsdaten importiert. Jeder Auftrag hat eine AuftragsID. (vom Kunden vergebener Wert, der durch ein Skript importiert wird).
In tbl2 werden geplante Touren erfasst. Zu jeder AuftragsID können mehrere Touren geplant werden.
Nun möchte ich die AuftragsID (sie wird momentan 1:1 aus tbl1 übernommen) in tbl2 (gerne auch in einer zusätzlichen Spalte) um einen fortlaufenden Wert ergänzen.
Beispiel:
Auftragsnr. / Tournummer
1234_1 / 7456
1234_2 / 4586
Gemeint ist also der Wert "_1" bzw. "_2"

Diese Lösung sollte entweder "im Hintergrund" durch eine Abfrage vor dem Datenexport geschehen, oder beim Erfassen im Formular durch eine Makro-Funktion (z.B. bei Fokusverlust etc). Ich möchte in jedem Fall dem User ersparen dass er die Eingabe jedes Mal manuell tätigen muss.

Ich hoffe man kann verstehen was ich meine?

Vielen Dank für eure Hilfe.

Grüße,
mohab

database

Hallo,

vielleicht hilft dir ...   http://www.donkarl.com?FAQ3.11  ... weiter.
Die AuftrgsID in der 2. Tabelle darfst du aber nicht überschreiben/ändern sonst passen die Schlüsselfelder nicht mehr - daher nur in eine eigene Spalte schreiben!

mohab

Servus Peter,

danke für deine Antwort. Der Ansatz ist interessant! So wie ich das verstehe müsste diese Codezeile ja prüfen ob bereits ein gleicher Wert in tbl2 vorhanden ist, und dann eine laufende Nummer für gleiche Werte ausspucken?
Ich habe versucht das auf meine Werte umzulegen. das ganze sieht bei mir so aus:
laufnr: DomAnzahl("[tbl2_auftragID]";"[tbl2_test]";"[tbl2_auftragID]<" & "[tbl2_auftragID]")+1
tbl2_test = tabellennahme

komischerweise bekomme ich nun durch die bank den Wert "1" zurück, auch wenn mehrere gleiche IDs vorkommen.

Hab ich hier einen Fehler in meiner zeile, oder in der kompletten Denkweise?

btw: meine ID ist Datentyp Text

Vielen Dank!
Grüße,
mohab

MaggieMay

Hallo,

versuche es mal hiermit:laufnr: DomAnzahl("[tbl2_auftragID]";"[tbl2_test]";"[tbl2_auftragID]<'" & [tbl2_auftragID] &"'")+1
Freundliche Grüße
MaggieMay

mohab

MaggieMay: vielen Dank! kleiner Fehler große Wirkung!

Aber... das ist jetzt genau das Gegenteil von dem was ich bräuchte.

Ich bekomme:

AuftragsID / laufnr / Tour
1234 / 1 / 4567
1235 / 2 / 4568
1235 / 2 / 4569
1235 / 2 / 4570
1236 / 3 / 4571

Was ich bräuchte:
1234 / 1 / 4567
1235 / 1 / 4568
1235 / 2 / 4569
1235 / 3 / 4570
1236 / 1 / 4571

Noch eine Idee für Feintuning?

Grüße,
und tausend Dank im Voraus!
mohab

MaggieMay

Sorry, ich hatte deinen Ansatz nicht hinterfragt, sondern nur auf Syntaxfehler untersucht.

So sollte es klappen:
laufnr: NZ(DomAnzahl("tbl2_auftragID";"tbl2_test";"tbl2_auftragID=" & tbl2_auftragID & " AND tbl2_Tour < " & tbl2_Tour);0)+1

Welchen Datentyp haben die Felder AuftragID und Tour?
Freundliche Grüße
MaggieMay

mohab

maggiemay, vielen Dank dass du dich um eine Lösung bemühst!
ich bin leider immer noch nicht weitergekommen. Dein Code resultiert in "#fehler". Hängt das wahrscheinlich mit den Datentypen zusammen?
tbl2_AuftragID = kurzer text
tbl2_tour = zahl (Long integer)

MzKlMu

Hallo,
versuche es so:
laufnr: NZ(DomAnzahl("tbl2_auftragID";"tbl2_test";"tbl2_auftragID='" & tbl2_auftragID & "' AND tbl2_Tour < " & tbl2_Tour);0)+1
Texte müssen in Hochkomma eingeschlossen werden.

PS:
Warum nimmt man Text für eine ID ?
Gruß Klaus

mohab

IHR GÖTTER DIE IHR SOLCHE FORMELN SCHREIBEN KÖNNT !!
mein ewiger Dank an euch!

der code von MzKlMu funktioniert wunderbar!

text für ID: resultiert aus der Tatsache dass es führende Nullen gibt, die unbedingt wieder exportiert werden müssen...!

nochmal tausend dank für eure Hilfe!
Grüße,
mohab

MzKlMu

Hallo,
führende 0en könnte man auch mit einer Zahl anzeigen und auch exportieren, völlig problemlos.

Format(Zahl,"00000")
macht aus 1 > 00001
Gruß Klaus