Abfrage Access < Datenbanken < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Hallo ,
ich habe in einer Datenbank zwei Tabellen, die folgende Namen besitzen: "Fakten_alle_Jahre_Schadenanzahl" und "Schadenanzahl_kumuliert". Ich möchte nun die Werte der Spalte "Schadenanzahl" der Tabelle "Schadenanzahl_kumuliert" in die Spalte "Schadenanzahl" der Tabelle "Fakten_alle_Jahre_Schadenanzahl" eintragen, aber nur in den Zeilen von "Fakten_alle_Jahre_Schadenanzahl", wo die "Polnr" und das "Jahr" beider Tabellen übereinstimmen. Mein SQL-Befehl in Access lautet dazu:
UPDATE Fakten_alle_Jahre_Schadenanzahl
SET Fakten_alle_Jahre_Schadenanzahl.Schadenanzahl = Schadenanzahl_kumuliert.Schadenanzahl
WHERE Fakten_alle_Jahre_Schadenanzahl.jahr=Schadenanzahl_kumuliert.Jahr And Fakten_alle_Jahre_Schadenanzahl.polnr=Schadenanzahl_kumuliert.Polnr;
Wenn ich diese Abfrage ausführe, kommt jedes mal die Meldung "Parameterwert eingeben" und zwar für die Spalten "Jahr", "Polnr" und "Schadenanzahl" der Tabelle "Schadenanzahl_kumuliert". Was ist das Problem?
Vielen Dank für Eure Antworten im voraus,
Oliver
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:50 Do 17.01.2008 | Autor: | rainerS |
Hallo!
> ich habe in einer Datenbank zwei Tabellen, die folgende
> Namen besitzen: "Fakten_alle_Jahre_Schadenanzahl" und
> "Schadenanzahl_kumuliert". Ich möchte nun die Werte der
> Spalte "Schadenanzahl" der Tabelle
> "Schadenanzahl_kumuliert" in die Spalte "Schadenanzahl" der
> Tabelle "Fakten_alle_Jahre_Schadenanzahl" eintragen, aber
> nur in den Zeilen von "Fakten_alle_Jahre_Schadenanzahl", wo
> die "Polnr" und das "Jahr" beider Tabellen übereinstimmen.
> Mein SQL-Befehl in Access lautet dazu:
>
> UPDATE Fakten_alle_Jahre_Schadenanzahl
> SET Fakten_alle_Jahre_Schadenanzahl.Schadenanzahl =
> Schadenanzahl_kumuliert.Schadenanzahl
> WHERE
> Fakten_alle_Jahre_Schadenanzahl.jahr=Schadenanzahl_kumuliert.Jahr
> And
> Fakten_alle_Jahre_Schadenanzahl.polnr=Schadenanzahl_kumuliert.Polnr;
>
> Wenn ich diese Abfrage ausführe, kommt jedes mal die
> Meldung "Parameterwert eingeben" und zwar für die Spalten
> "Jahr", "Polnr" und "Schadenanzahl" der Tabelle
> "Schadenanzahl_kumuliert". Was ist das Problem?
Du willst auf die zusätzliche Tabelle Schadenanzahl_kumuliert zugreifen, ohne sie in einem FROM oder JOIN aufzuführen. Normalerweise geht das so:
UPDATE Fakten_alle_Jahre_Schadenanzahl
SET Fakten_alle_Jahre_Schadenanzahl.Schadenanzahl =
(SELECT Schadenanzahl_kumuliert.Schadenanzahl FROM Schadenanzahl_kumuliert
WHERE Fakten_alle_Jahre_Schadenanzahl.jahr=Schadenanzahl_kumuliert.Jahr And
Fakten_alle_Jahre_Schadenanzahl.polnr=Schadenanzahl_kumuliert.Polnr);
Aber Access versteht keine Subselects, oder? Dann sieht das vermutlich etwa so aus:
UPDATE Fakten_alle_Jahre_Schadenanzahl JOIN Schadenanzahl_kumuliert
ON Fakten_alle_Jahre_Schadenanzahl.jahr=Schadenanzahl_kumuliert.Jahr And
Fakten_alle_Jahre_Schadenanzahl.polnr=Schadenanzahl_kumuliert.Polnr
SET Fakten_alle_Jahre_Schadenanzahl.Schadenanzahl = Schadenanzahl_kumuliert.Schadenanzahl;
Alles ungetestet
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:32 Do 17.01.2008 | Autor: | Infinit |
Hallo Oliver,
unabhängig von Rainers Lösungsvorschlag hier noch ein allgemeiner Tipp:
Diese Art von Reaktion tritt dann auf, wenn Access die in dem Befehl vorkommenden Felder nicht kennt und deswegen bei der Durchführung der Abfrage um Werte bittet.
Den Grund dafür kann ich Dir nicht explizit nennen, aber was mir direkt einfällt ist:
a) Die Tabelle existiert (noch) nicht zum Zeitpunkt der Abfrage oder
b) Du hast Dich vertippt bei den Tabellen- oder Feldnamen. Hat der Tabellenname wirklich "Underscores" oder vielleicht doch Blanks (dann den Namen in eckige Klammern setzen), ist ein Buchstabendreher aufgetreten?
Hoffe, es hilft Dir,
Infinit
|
|
|
|