Hallo,
ich importiere fortlaufend Daten (Text) aus einer *.txt-Datei in eine Tabelle.
Es sind nicht immer bei allen Datensätzen alle Felder mit Text gefüllt.
Aus diesem Grund möchte ich in dieser Tabelle durch eine Aktualisierungsabfrage alle leeren Felder mit "-" füllen.
Wenn ich dies in der Aktualisierungsabfrage mit nur einem Feld mache, funktioniert dies.
UPDATE [tbl_1] SET [tbl_1].Feld1 = "-"
WHERE ((([tbl_1].Feld1) Is Null));
Wenn ich dies aber mit mehreren Feldern so mache, funktioniert es nicht.
Meine eher bescheidene Lösung wäre, mehrere Aktualisierungsabfragen (je Feld eine eigene) zu erstellen und diese nacheinander zu starten.
Kann mir bitte jemand erklären, warum dies so nicht über eine einzige Aktualisierungsabfrage geht und wie es evtl. möglich wäre?
Herzlichen Dank im Voraus
Liebe Grüße
hahade
Hallo,
Sollte mit Nz() gehen, - ungetestet
UPDATE [tbl_1] AS T SET T.Feld1 = Nz(T.Feld1,"-"), T.Feld2 = Nz(T.Feld2,"-")
Die WHERE-Klausel entfällt dabei.
gruss ekkehard
allo,
warum lässt Du die Felder nicht einfach leer (Null)?
Hallo,
vielen lieben Dank für die schnelle Rückmeldung.
@ekkehard: Nz() werde ich probieren
@klaus: weil ich zur Weiterverarbeitung über mehrere Felder einen zusammengesetzten Primär-Schlüssel legen möchte. Und der Versuch hat mir gesagt, dass es keine leeren Felder geben darf. Hm.
Vielen lieben Dank
hahade
Hallo,
von einem zusammengesetzten Primär-Schlüssel ist abzuraten. Alle Verknüpfungen müssen dann immer über alle Felder dieses PS laufen. Auch Verknüpfungen Hafo-Ufo. Das ist viel zu unhandlich/unpraktisch im weiteren Verlauf der Entwicklung der DB.
Als Primärschlüssel verwendet man im Regelfall einen Autowert.
Hallo,
@ekkehard: das funktioniert. Vielen Dank!
@klaus:
Auch dir vielen Dank, aber von den meisten Dingen verstehe ich nur Bahnhof.
Wenn ich deinen Rat befolge und auf den zusammengesetzten Primär-Schlüssel verzichte, wie kann ich dann mit "Anfängermitteln" verhindern, dass gleiche Datensätze angefügt werden?
Hier mal Details zur Info:
ich habe eine Verknüpfung zu meiner externen *.TXT-Datei
Damit erstelle ich mittels Tabellenerstellungsabfrage eine "temporäre" Tabelle
Diese Tabelle aktualisiere ich dann (leere Felder -> "-")
Die aktualisierte Tabelle füge ich dann an die "Haupttabelle" (gleiche Struktur wie die temporäre) an.
Hierbei soll verhindert werden, dass bereits vorhandene identische Datensätze nochmal angefügt werden.
(es kann nämlich vorkommen, dass die *txt-Datei Daten enthält, die schonmal importiert/angefügt wurden)
Bin über jeden Hinweis, wie ich es ein Stück richtiger machen kann sehr dankbar.
(kann allerdings heute nicht mehr antworten).
Lieben Dank und einen schönen Sonntag
hahade
Hallo,
statt eines PS legste Du "nur" einen zusammengesetzten eindeutigen Index an. Dieser kann auch mit leeren Feldern umgehen bzw. das kann man einstellen. Eingestellt wird dieser eindeutige Index über das Indexfenster.
Wenn man eine Datenbank entwickelt, sollte man sich mit solchen Dingen unbedingt beschäftigen. Das Problem ist, dass man Access lernen muss, da geht nix intuitiv wie bei Excel und Word.
Siehe hierzu:
https://www.access-tutorial.de/tabellen/schluessel.htm
Hier noch ein Link zu dem komletten Tutorial:
https://www.access-tutorial.de/
Hallo Klaus,
deinen Rat mit dem "zusammengesetzten Index" hab ich schonmal umgesetzt. Vielen Dank!
Allerdings habe ich noch ein paar Problemchen beim anfügen der Datensätze. Schlüsselverletzungen, doppelte Datensätze usw..
Da werde ich mich weiter probieren.
Nochmal vielen lieben Dank für deine/ eure superschnelle Hilfe.
Eine schöne Woche
Zitatstatt eines PS
Ich würde
zusätzlich bevorzugen.