Januar 20, 2021, 13:08:02

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Excel/Access 2019: Benutzerdefinierte Funktion in Abfrage/Datenverbindung

Begonnen von ritzenflitzer, Januar 11, 2021, 09:40:17

⏪ vorheriges - nächstes ⏩

ritzenflitzer

Hallo

in einer Access-Abfrage verwende ich eine benutzerdefinierte Funktion (public function), die ich auch in Excel verwende. In beiden Anwendungen liefert der Funktionsaufruf korrekte Werte.

Wenn ich nun aber via einer PowerQuery-Datenverbindung aus Excel heraus diese Access Abfrage abrufe, kann Excel die Datenverbindung nicht herstellen. Ich muss dann dieses Feld, das auf den Funktionsaufruf verweist, entfernen, in der Access-Abfrage entfernen. Dann geht die Datenverbindung wieder.
Problem ist, dass ich aufgrund der vielen Datensätze (50.000 +) das gerne in Access gerechnet haben möchte, und nicht in Excel, weil dort schon fast 800.000 Formeln bei Aktualisierung immer zu rechnen sind.

Kann man da irgendwas machen, dass die Datenverbindung trotzdem diese Formel "versteht" und aufrufen kann?

Grüße

steffen0815

Hallo,
nmK. kannst du für diese Verbindung keine VBA Funktionen nutzen.
Du müsstest versuchen, die Funktionalität mit SQL umzusetzen oder aus Access selbst eine Exceltabelle zu generieren.
Gruß Steffen

ebs17

Zitatfast 800.000 Formeln
Das ist doch das eigentliche Mengenproblem und zusätzlich angesichts der Möglichkeiten von Power Query, das eh schon im Einsatz ist, ein merkwürdiger Umstand.

Den Hinweis von Steffen möchte ich unterstreichen: Der sogenannte Expression Service macht Access-, VBA- und benutzerdefinierte Funktionen in Jet-SQL nutzbar, um den sehr mageren Befehlsumfang von Jet-SQL erheblich zu ergänzen. Allerdings wirkt dieser Expression Service nur direkt in Access und ist mit Außenzugriffen nicht nutzbar.
Mit freundlichem Glück Auf!

Eberhard

ritzenflitzer

Januar 11, 2021, 14:38:32 #3 Letzte Bearbeitung: Januar 11, 2021, 14:45:11 von ritzenflitzer
OK, danke erstmal für die betrüblichen Antworten :'(

Dass das so viele Formeln sind liegt halt an den vielen Datensätzen, die sich allerdings größtenteils aus unterschiedlichen Tabellenstrukturen generieren und sich deshalb nicht so joinen lassen. Und wenn man dann in einer Tabelle allein für jeden DS 46 Werte zusätzlich generieren muss, berechnete Felder und Formeln außerhalb der Pivottables rechnen lassen muss, weil das die Pivots so nicht hergeben, was man braucht und dann noch einige globalen Variablen generieren muss......
Ich schau mir aber nochmal die Join-Möglichkeiten in Excel an, vielleicht kann ich das ein oder andere entschärfen.

ebs17

Zitatallein für jeden DS 46 Werte zusätzlich generieren muss
Manchmal muss man auch einfach Abfragetechnik in der Datenbank selber beherrschen, z.B. Grundlagen - SQL ist leicht (1) - Hilfstabellen.

VBA ist der Ausweg für Dinge, die SQL nicht kann oder nur sehr umständlich lösen könnte. Allzu schnell ist es aber auch nur der Ausweg für jene Entwickler, die einen unzureichenden Zugang zur nativen Sprache einer Datenbank haben.
Mit freundlichem Glück Auf!

Eberhard