Einzelnen Beitrag anzeigen
Alt 20.11.2002, 20:24   #4
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Leider is das Problem net so einfach - redim kenn ich eh.

Die Daten müssen nicht erhalten bleiben, weil am Anfang wo ich das "redim" brauch noch nix im Array steht.

So aber ich schreib mal die Problematik, dann wirds besser verständlich warum ich das so machen will:

Projekt in VBA, soll eine Matrix aus einer Textdatei einlesen - "Datensätze" durch ";" getrennt. Die Testmatrix die wir derzeit haben ist 373*373 (=139129) Felder groß.
VBA dapackt das net (nich einmal in einer Stunde war er fertig) - drum wird das Einlesen der Matrix in einer DLL gemacht - zumindest stellen wir uns das so vor.
Die Werte die gespeichert werden sind Strings.

Weil in VB dauerts nicht mal 2 Minuten mit dem gleichen Code auf der gleichen Maschine.

Jetzt haben wir uns mal mit ActiveX Dlls gespielt wie das ungefähr funktioniert. Um den Wert bzw. die Matrix zu übergeben haben wir ein
Code:
 Public Type test
     array(10, 10) as string
 end Type
gemacht - nur zu testzwecken.

In Access die DLL dann über Verweise eingebunden und eine Variable vom Typ test definiert.(array)
Von VBA rufen wir eine Funktion in der DLL auf prozedur(byref array).

Die DLL speichert dann nur zum Test mal irgendeinen String rein und den geb ich in VBA aus.


Das Problem ist, dass im Typ test das array von der Größe limitiert ist (auf 64kB) - wenn ich jetzt ein array mit (373, 373) definier bekomm ich einen Fehler und kann nicht kompilieren.

Und wenn ich das ganze über eine Variable lösen würde - meiner Meinung nach die einzige Möglichkeit wie binde ich diese dann in VBA ein, damit ich darauf zu greifen kann? Das ist das was ich wissen will und brauch.


Ich hoff das war jetzt nicht zu kompliziert...
renew ist offline   Mit Zitat antworten