badni12
Goto Top

Update query - Aktualisierungsabfrage

Hallo

Habe zwei Tabellen, die eine Tabelle "x" ist eine reine Eingabetabelle mit unzähligen Feldern (darunter das Feld "Lieferant")
Die zweite Tabelle "y" hingegen beinhaltet nur zwei Felder, "Lieferant" und "Lieferant Info"
Deshalb habe ich eine Aktualisierungsabfrage gemacht, funktioniert auch soweit

Wenn ich jetzt allerdings einen neuen Datensatz mit einem neuen Lieferanten und dem Info dazu in der Tabelle "y" anlege , zeigt er mir die Info zum dazugehörigen Lieferanten in der Tabelle "x" nicht mehr an.

Bitte um Hilfe
Thx
Lg
badni

Content-ID: 245953

Url: https://administrator.de/contentid/245953

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

drobskind
drobskind 08.08.2014 um 13:12:15 Uhr
Goto Top
Ein paar mehr Informationen währen nicht schlecht...
Ich kann nur erkenne, dass es sich um zwei Tabellen und Office handelt.

Meinst du Excel, oder Access? (Aufgrund des query Begriffs gehe ich mal von Access aus)

Wie sieht deine "query" aus?
badni12
badni12 08.08.2014 aktualisiert um 13:31:43 Uhr
Goto Top
hallo

srry dafür :p

ja, arbeite mit MS Access 2010

machte eine Aktualisierungsabfrage mit folgendem sql:

(tabelle x heißt Eingabe, tabelle y heißt Infolieferant)

UPDATE Eingabe, Infolieferant SET Eingabe.Info = [Infolieferant]![Info]
WHERE ((([Eingabe]![Lieferant])=[Infolieferant]![Lieferant]));

allerdings schreibt er nur bei den bereits bestehenden Lieferanten die Information in der Tabelle Eingabe hinzu
wenn ich einen neuen Datensatz mit neuen Lieferanten erstelle, funktioniert das nicht mehr..

lg
badni
drobskind
drobskind 08.08.2014 um 13:31:50 Uhr
Goto Top
Also wenn ich das jetzt spontan richtig lese, ist das auch vollkommen logisch.
deine where Bedingung sagt ja auch, x.Lieferant = y.Lieferant

du müsstest diese mit einer select und insert query koppeln.


Also kurz:
wenn x.lieferant in y.lieferant, dann update ...
else insert x.lieferant into y.lieferant

Gruß
drobskind
drobskind
drobskind 08.08.2014 um 13:40:11 Uhr
Goto Top
Beispiel: (TSQL sicher so nicht ausführbar)
face-wink


if exist (select * from Infolieferant
where Infolieferant.Info = Eingabe.Info)
begin
UPDATE Eingabe, Infolieferant SET Eingabe.Info = [Infolieferant]![Info]
WHERE ((([Eingabe]![Lieferant])=[Infolieferant]![Lieferant]));
end
else
begin
insert into infolieferant.info values (eingabe.info,"HUGO","usw")
end
badni12
badni12 08.08.2014 um 13:40:55 Uhr
Goto Top
hallo

danke schonmal für die antwort

kannst mir vlt noch sagen wie ich die zwei abfragen kopple und wo ich die Bedingung dann reinschreiben muss? Muss ich das dann in VBA machen?

lg
badni
drobskind
drobskind 08.08.2014 um 13:43:38 Uhr
Goto Top
Siehe mein Beispiel oben...
leider bin ich mit Access nicht so bewandert wie mit TSQL und Microsoft SQL Server.
Aber es müsste ja im Access auch eine Möglichkeit geben, den SQL Befehl von hand einzugeben, statt ihn zusammenzuklicken.
Somit ist sicher auch eine IF-Then-Else funktion wie in meinem Beispiel möglich.
face-wink