2016-07-12 10 views
1

Ich versuche, diese VBA-Funktion in der folgenden Update-Abfrage aufzurufen, und ich bekomme diesen Fehler. Ich stecke fest und weiß nicht, was ich tun soll. Die Funktionssignatur scheint mir ok zu sein.MS Access: Der eingegebene Ausdruck ist zu komplex

enter image description here

Compute([ep].[ReferenceNumber],[ep].[ITU3Number],[ep].[AuthorizationNumber],[ep].[Ent],[ep].[Indicator],[ep].[LineCode],[ep].[ProductLinee],[ep].[Inp_ProfitCenterCode],[ep].[Inp_ParisBOCode],[ep].[StartDate],[ep].[EndDate],[ep].[ExtractionDate],[ep].[OffBalance],[ep].[IType],[ep].[Counterparty],[ep].[WAL],[ep].[Inp_BackupLineIndicator],[ep].[Indicator],[ep].[FinalRating],[ep].[Amount],[ep].[Currency],[ep].[Historical],[ep].[rice],[ep].[MaturityIndicator],[ep].[pproachType],[ep].[SignatureDate],[ep].[IMaturityDate],[ep].[ProductType],[ep].[Inp_StepupDuration],[ep].[ProbabilityOfStepup],[ep].[SCF],[ep].[ICollateralSCF],[ep].[MobilFlag,[ep].[MarginBp],[ep].[ExtensionCode],[ep].[ExtensionYear],[ep].[UsageType],"a","a")

+0

Ich bin mir nicht sicher, dass es eine Compute-Funktion gibt. Hast du vielleicht den Namen abgeschnitten? – ThunderFrame

+0

Ja aus Gründen der Vertraulichkeit! Nehmen wir an, es ist das gleiche .. – Json

+0

am besten nicht in den Screenshot dann! – ThunderFrame

Antwort

2

Der Ausdruck für den Zugang zu Verfahren zu lang ist:

Die maximal zulässige Länge erscheint scheint etwa 560 Zeichen sein Die maximale Anzahl der Argumente 29 zu sein.

Zum Beispiel durch Abschneiden einiger Felder funktioniert dies:

Compute([ep].[ReferenceNumber],[ep].[ITU3Number],[ep].[AuthorizationNumber],[ep].[Ent],[ep].[Indicator],[ep].[LineCode],[ep].[ProductLinee],[ep].[Inp_ProfitCenterCode],[ep].[Inp_ParisBOCode],[ep].[StartDate],[ep].[EndDate],[ep].[ExtractionDate],[ep].[OffBalance],[ep].[IType],[ep].[Counterparty],[ep].[WAL],[ep].[Inp_BackupLineIndicator],[ep].[Indicator],[ep].[FinalRating],[ep].[Amount],[ep].[Currency],[ep].[Historical],[ep].[rice],[ep].[MaturityIndicator],[ep].[pproachType],[ep].[SignatureDate],[ep].[IMaturityDate],[ep].[ProductType],[ep].[Inp_StepupDuration])

Dies funktioniert:

Compute(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29)

Aber das scheitert:

Compute(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30)

Also, Sie so etwas tun könnte:

Compute(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,SubCompute(29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56))

+0

Lass mich versuchen .. tnx. obwohl ich nicht sicher bin, ob es möglich ist, eine Funktion als Parameter aufzurufen. – Json

+0

Ja, Sie können die Funktion * Rückgabewerte * als Parameter verwenden. VBA wird die innere Funktion auswerten und die Ergebnisse an die äußere Funktion übergeben. Und weil es VBA ist, können Sie Arrays und andere Objekte zurückgeben, die Sie nicht einfach von Access SQL übergeben können. – ThunderFrame