Ist es überhaupt möglich, zu bestimmen, welche Spalten in einer Update-Anweisung bedingt aktualisiert werden?Kann ich feststellen, welche Spalte ich an etwas bedingungsbedingt aktualisiere?
Ich versuche, eine Update-Abfrage zu aktualisieren, um eine von 30 Spalten pro Datensatz zu aktualisieren, aber nur wenn das vorherige Feld im Datensatz bereits ausgefüllt ist. Grundsätzlich habe ich eine Tabelle mit Projekten und eine Tabelle mit Spendern. Jedes Projekt hat 1 bis 4 Spender, aber jeder Spender hat zwischen 1 und 25 Projekte finanziert. Die Projektseite ist mit den Spendern ausgefüllt, daher versuche ich, die Spender automatisch mit den von ihnen finanzierten Projekten auszufüllen. Bis jetzt ist mein Versuch wie folgt. (Die Abfrage von dem ich Aktualisierung AM ist eine Abfrage, die Felder auswählt, wenn der Spender aus dem Spendertabelle gleich Spender 1 oder Donator 2 oder Donator 3 oder Donator 4 von der Projekttabelle):
UPDATE [Appropriate Query]
SET (iif([Project Funded 1 title] is null OR [project funded 1 title] <>
[Project title], [project funded 1 title], iif([project funded 2 title]
is null OR [project funded 1 title] <> [Project title], [project funded 2 title]))
= Iif([Project title] is null, [cc number], [project title])
(i dieses haben Nested Loop erste SET-Teil für 30 Spalten geschlungen der zweite Teil meines Codes ist, weil einige der "Projekttitel" Felder leer sind, aber ich brauche eine Kennung in das Feld)
Bisher habe ich nur Fehlermeldungen erhalten. Ist es überhaupt möglich, zu bestimmen, welche Spalten wie oben dargestellt bedingt durch ihren Inhalt aktualisiert werden? Ich weiß, dass die iif-Anweisung hässlich ist, aber JET SQL (die Sprache des Zugriffs) erlaubt keine Fallanweisungen, von dem, was ich verstehe.
Vielen Dank, und vergib meine Unwissenheit.
Vielen Dank, das ist genau die Informationen, die ich gesucht habe. – Benjamin
Eine Follow-up-Frage ... Ich habe bereits viele Felder mit Daten gefüllt. Gibt es eine Möglichkeit, die Junction-Tabelle automatisch mit den ID-Nummern zu füllen? – Benjamin
@ Benjamin: siehe bearbeiten. – Andre