Hallo,
ich kriege eine Aktualisierunsabfrage nicht gebacken und bitte um Hilfe.
Auftragsnummer: VK-36176.0000
Kundennummer : EK-00006
Die ersten 8 Stellen der Auftragsnummer sollen durch die 8 Stellen der Kundennummer ersetzt werden.
In die Abfrage Links([KuNr];8) gelingt mir der Einbau von [Teil] nicht, um die Aktualisierung auf wirklich nur die ersten 8 Zeichen zu begrenzen.
Hallo,
das Vorhaben halte ich in der Form für falsch. Der Feldinhalt (jetzt und mit der Kundennummer auch) verstößt bereits gegen die 1.Normalform (atomare Inhalte).
Die Auftragsnummer sollte als ganz normale Zahl geführt werden (1-9999).
In einer Abfrage kannst Du das Feld problemlos zur gewünschten Anzeige zusammensetzen.
Z.B. so:
AuftragsNr: Kundennummer & "." & Format(Auftragsnummer;"0000")
Das hat auch den Vorteil, dass die Auftragsnummer automatisch hochgezählt werden kann, ggf. auch mit Bezug zum Kunden.
Hi,
beide Nummer haben die Eigenschaft Text.
Von den 13 Zeichen sollen die ersten 8 durch die Kundennummer ersetzt werden.
Mit der Abfrage: Links([KuNr];8) wird die gesamte Auftragsnummer (13 Zeichen) durch die Kundennumer (8Zeichen) ersetzt.
Es müssen aber die letzten 5 Zeichen der Auftragsnummer erhalten bleiben.
Ich muss in die Abfrage also einbauen, dass nur der erste Teil (8 Zeichen) links ersetzt werden soll.
Aus VK-36176.0000 soll EK-00006.0000 werden.
Hallo,
ich habe die Aufgabenstellung schon verstanden, aber Du meine Antwort nicht. Du gehst ja noch nicht mal mit einer Rückfrage darauf ein.
Das Vorhaben ist in der Form falsch. Du kannst Dir wie gesagt die Auftragsnummer zusammengesetzt anzeigen lassen, was völlig ausreicht,
Ansonsten:
UPDATE Tabellenname SET Auftragsnummer = [KuNr] & Mid([Auftragsnummer ],9,5)
Hallo und Du hast Recht.
Ich hatte einfach vergessen einen entsprechenden Teil zu posten. Allerdings hattest auch Du meine Frage nicht beantwortet, so dass ich den nochmaligen
Erklärungsbedarf sah.
Es gibt in bestehenden Datenbanken mitunter gute Gründe an bestehenden Formen festzuhalten. Es würde zu weit führen an dieser Stelle darüber zu diskutieren,
aber vielleicht genügt es Dir wenn ich sage, dass die Daten (Kunden-, Auftrags- und Rechnungsdaten) aus einer Access 2.0 db importiert werden müssen.
Aber wie dem auch sei, ich danke Dir für Deine Hilfe, denn die Aktualisierung läuft nun. :)
Hallo,
Zitataus einer Access 2.0 db importiert werden müssen.
dann würde ich es erst recht nicht so machen. Dann solltest Du mit den Aktualisierungsabfrage das gleich in eine normalisierte Struktur überführen und den vorderen Teil der jetzigen Auftragsnummer löschen. Dann in einer Abfrage den verbleibenden Teil der Auftragsnummer zusammen mit der KuNr anzeigen.
Na ja, eigentlich wollte ich diese Diskussion nicht mehr, weil ich sie vor Jahren schon einmal bei Spotlight geführt habe. Aber:
Die Normalform erfordert die Felder [Kundennummer] und [LfdNummer]. Meine Lösung erfordert: [Kundennummer] und [Auftragsnummer].
Bei beiden Ansätzen muss der maxWert+1 [LfdNummer] bzw. maxWert+1 [Auftragsnummer] ermittelt werden, um eine neue Auftragsnummer zu bilden.
Bei beiden Ansätzen benötige ich also zunächst zwei Felder.
In benötige aber die komplette Auftragsnummer als indiziertes Feld, auch um bei Nachbestellungen des selben Artikels die dazugehörenden
Herstellungsanweisungen und Werkzeuge (Hardware-Ablage) zu finden.
In der Normalform käme dann dieses Feld als Drittes hinzu, das aus [Kundennummer]& "." &[LfdNummer] zu bilden wäre.
Zugegebenermaßen sind meine Fähigkeiten und Fertigkeiten in der Access-Anwendung begrenzt und möglicherweise sehe ich das daher auch alles falsch.
Ich scheue aber einen Aufwand bei dem ich den Nutzen nicht erkennen kann.