PDA

Vollständige Version anzeigen : VBA-Code in c++ auslagern?


sowosamma
08.10.2015, 17:04
Hallo,

ich habe in meiner Access-Datenbank diversen VBA-Code. Zwei oder drei Berechnungen dauern mir aber zu lange. Deswegen habe ich mir die Frage gestellt ob es möglich ist, diese Funktionen in c++ zu programmieren und als Verweis oder ähnliches in VBA einzubinden?

Von c++ habe ich bisher nur sehr wenig Ahnung. Ich habe vor paar Jahren mal ein kleines Programm geschrieben, welches ähnlich wie bei meinem jetzigen Projekt einfache Berechnungen aber sehr viele Schleifen hatte. Das habe ich durch lesen und suchen hinbekommen. Und die zeitersparnis ggü Excel/VBA war gigantisch!!! Damals war es aber so, dass ich die Daten aus einer csv ausgelesen und die Ergebnisse in eine csv geschrieben habe.

Diesmal möchte ich aber die Daten in und aus VBA nutzen. Ich öffne ein Recordset in VBA, übergebe diese Daten dann als Recordset oder Array der c++ Funktion und die gibt mir eine Wert oder ein Array mit mehreren Werten zurück. Geht das? Ist das dann eine DLL die ich über Extras/Verweis in VBA einbinde?

Gruß,
Andi

Josef P.
18.10.2015, 10:32
Hallo!

Gurndsätzlich könntetst du mit C++ eine COM-dll erstellen (das wird aber vermutlich aufwendig werden) und diese in VBA verwenden. Du kannst auch allg. Funktionen in einer dll nutzten, wenn du das wie bei den Windows-APIs gestaltest.

Möglicherweise musst du den Code nicht auslagern. Falls das Geschwindigkeitsproblem am Datenzugriff bzw. in der Datenverarbeitung liegt, kann ein passender Index die Auswertungsgeschwindkeit erhöhen. Und immer daran denken: Datenbanken sind bestens geeignet für Massendatenverarbeitung (gesteuert durch SQL), welche einer Bearbeitung durch Schleifen vorzuziehen wäre. ... und eine SQL-Anweisung wird durch C++ nicht schneller abgearbeitet.

mfg
Josef