2017-08-26 1 views
0

ich einen Master-Tabelle haben tblBudget welche Einträge wieOperation muss eine aktualisierbare Abfrage Fehler Access verwenden

ProjID Type Budget Active 
101  ROM 100  No 
101  PLE 110  No 
101  DLE 120  Yes 
102  ROM 200  No 
102  PLE 210  Yes 

Jeden Monat enthält erhalte ich eine Excel, die ich importieren und speichern in eine temporäre Tabelle tblMonthlyBudget, die enthält Einträge wie

ProjID Type Budget Active 
101  EAC 100 Yes 
102  DLE 110 Yes 

ich schrieb eine Aktualisierungsabfrage, die alle Active Einträge in tblBudget zu aktualisieren versucht zu Nein, damit neue Datensätze, die am aktivsten sind, eingefügt werden können. Meine Frage ist

UPDATE tblBudget 
INNER JOIN tblMonthlyBudget 
     ON tblBudget.ProjectId = tblMonthlyBudget.ProjectID 
SET tblBudget.Active = false 

Jedoch habe ich den Fehler

Betrieb eine aktualisierbare Abfrage verwenden müssen

obwohl die Abfrage korrekt im Datenblatt und Entwurfsansicht zu zeigen scheint. Ich bekomme es nur während der Abfrage. Ich habe versucht, nach dem Fehler zu suchen und habe alle möglichen Kombinationen ohne Erfolg ausprobiert. Jeder alternative Ansatz ist willkommen. Ich vermute, dies liegt daran, dass die temporäre Tabelle mehr als einen Datensatz enthält.

+0

Normalerweise auf zwei Quellentabellen (keine Abfragen), sollte ein solches Update funktionieren. Da muss etwas strukturelles an diesen beiden sein. Was meinst du mit * Tempentabelle *? – Parfait

+0

Hat 'tblBudget' einen Primärschlüssel? Wenn ja, was ist das? – Andre

+1

@Andre danke für Ihre Hilfe. Ich habe das Problem dadurch herausgefunden, dass ich versucht habe, eine Tabelle basierend auf einem Join mit einer Kreuztabellenabfrage zu aktualisieren. Das Problem wurde gelöst, als ich die Ergebnisse der Kreuztabellenabfrage in eine temporäre Tabelle einfügte. – Anup

Antwort

0

Ich habe versucht, Ihr Problem mit den Daten und Tabellenstrukturen zu replizieren, die Sie zur Verfügung gestellt haben. Aber das UPDATE funktioniert so, wie ich es erwarten würde. Es wird immer noch funktionieren, wenn es wiederholt Einträge in tblMonthlyBudget gibt - es wird nur sehr oft aktualisiert. Bitte lesen Sie mcve und ändern Sie Ihre Frage mit Daten und Tabellenstruktur, die tatsächlich Ihren Fehler erzeugt. Sonst haben wir fast keine Hoffnung, dir zu helfen.

+0

Dank Jonathan, habe ich das Problem herausgefunden, tblMonthlyBudget ist eine Kreuztabellenabfrage, die eine andere Tabelle transponiert. Das Problem wurde gelöst, als ich die Ergebnisse der Kreuztabellenabfrage in eine temporäre Tabelle einfügte. Aus irgendeinem Grund erlaubt mir der Zugriff nicht, eine Tabelle basierend auf einem Join mit einer Kreuztabellenabfrage zu aktualisieren. – Anup

+0

Ja Der Zugriff ist sehr restriktiv beim Aktualisieren von Joins. Ich bin froh, dass Sie es behoben haben. –

Verwandte Themen