Microsoft Access-Abfrage ist zu komplex - IF-Formel
533
Clarisa
Ich habe eine Abfrage in der Access-Datenbank, und wenn ich versuche, sie auszuführen, erhalte ich die Fehlermeldung "Abfrage ist zu komplex zum Ausführen". Laufzeitfehler 3360. "Das Problem liegt bei einer Formel / Programmierlogik, siehe unten:
Zuvor war die Formel unten - und es hat funktioniert.
IIf([BegTaxBasis]=0 And [Contribution]+[Distribution]=0,0,IIf([BegTaxBasis]=0 And [TaxIncSubTotal]=0,-[Distribution],IIf([Distribution]=0,0,IIf([TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]<[Distribution],-[Distribution],0))))
Eine ausführliche Version des Obigen wäre:
IIf( [BegTaxBasis]=0 And [Contribution]+[Distribution]=0, 0, IIf( [BegTaxBasis]=0 And [TaxIncSubTotal]=0, -[Distribution], IIf( [Distribution]=0, 0, IIf( [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]<[Distribution], -[Distribution], 0 ) ) ) )
Dann habe ich es aktualisiert, siehe unten:
IIf([BegTaxBasis]=0 And [Contribution]+[Distribution]=0,0,IIf([BegTaxBasis]=0 And [TaxIncSubTotal]=0,-[Distribution],IIf([Distribution]=0,0,IIf([TBBLL]>0,0,IIf([TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]<[Distribution],-[Distribution],IIf([TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]>[Distribution] And [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]<0 And [TaxIncSubTotal]<0,[TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]-[TaxIncSubTotal],[TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse])))))
Ausführliche Version des obigen:
IIf( [BegTaxBasis]=0 And [Contribution]+[Distribution]=0, 0, IIf( [BegTaxBasis]=0 And [TaxIncSubTotal]=0, -[Distribution], IIf( [Distribution]=0, 0, IIf( [TBBLL]>0, 0, IIf( [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]<[Distribution], -[Distribution], IIf( [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]>[Distribution] And [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]<0 And [TaxIncSubTotal]<0, [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse]-[TaxIncSubTotal], [TBBLL]+[Recourse]+[QualifiedNonrecourse]+[NonRecourse] ) ) ) ) )
Und jetzt läuft die Abfrage nicht mehr, jede Hilfe wird sehr geschätzt, danke!
Eine Case-Anweisung könnte besser funktionieren, da sie besser lesbar wäre. Ihre Abfrage scheint zu fehlen und ein).
Musselman vor 7 Jahren
0
Die Case-Anweisung wird in Access Expression nicht erkannt. Außerdem fehlt meines Erachtens ein ")", da Access einen Fehler zurückgibt, wenn eine Klammer fehlt. Irgendeine andere Möglichkeit, die IF-Anweisung zu vereinfachen?
Clarisa vor 7 Jahren
1
Warum verwenden Sie "IIF"? Ich meine, was ist der Punkt?
Dave vor 7 Jahren
1
Nun ... der komplexe Fehler kann durch so viele verschiedene Dinge verursacht werden: zu komplexe Ausdrücke, Funktionsaufrufe mit Nullwerten, unvollständige Datumsparameter (z. B. # 07-25- # usw.) und so weiter.
RylanAccess vor 7 Jahren
0
Wie Sie aus meiner Bearbeitung Ihrer Frage entnehmen können, fehlt Ihnen tatsächlich eine schließende Klammer. Wenn Sie das in Ihrem Originalcode haben, ist Ihre Kopie für die Frage unvollständig. Da Sie diese unhandliche Berechnung ([TBBLL] + [Recourse] + [QualifiedNonrecourse] + [NonRecourse] `) mehrfach verwenden, haben Sie darüber nachgedacht, eine Variable / Spalte oder ähnliches zu verwenden?
Seth vor 7 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
2
Wie füge ich zu "Häufige Ausdrücke" in Access hinzu?
-
5
Welche Schnittstellen außer MS Access stehen zur Verfügung, um MDB-Dateien zu bearbeiten
-
11
Weniger einschüchterndes Frontend für SQL Server
-
4
Wie kann ich eine MySQL-Datenbank am besten in eine Zugangsdatenbank konvertieren?
-
4
Mdb-Dateien in Ubuntu öffnen
-
1
Access 2007 zeigt keinen Navigationsbereich
-
2
Entspricht der NETWORKDAYS-Funktion von Excel mit Jet ADO
-
11
Warum meldet Access einen Befehl an das Programm?
-
2
Geteilte MS Access-Datenbankabfragen
-
1
Öffnen von .mdb-Dateien 2003 für ms access 2007