piomode1 Geschrieben 8. April 2005 Geschrieben 8. April 2005 Hi, @all! Ich brauche mal Hilfe: In einer Access-Datenbank soll eine Zahl (0 < x < 4000) in die römische Schreibweise umgewandelt werden (Z.B.: 123 --> CXXIII) Excel stellt eine entsprechende Funktion bereit: "Roman" ("Römisch" im Tabellenblatt.) Access (anscheinend) nicht. Mit folgendem Code kann ich auf die Excel-Funktion zugreifen, indem ich - die in meine Funktion übergebene Zahl und die Umwandlungsformel in ein neues Tabellenblatt schreibe, - den Wert in römischer Schreibweise auslese - und diesen dann zurückgebe. (Der entsprechende Verweis auf die "Excel-Object-Library" ist gesetzt.) ABER: Das muß doch auch einfacher gehen!? Die Laufzeit ist unerträglich lang. Und irgendwann wird sich ein User wundern, warum er "Mappe 4242" bekommt, wenn er manuell eine neue anlegt. Wenn überhaupt eine neue angelegt werden kann (<-- Speicher nicht aufgeräumt?) Hier erst einmal meine Lösung (ohne Test auf "Gültig(lngZahl)"): Function fktRoman(lngZahl As Long) As String Dim Excel2000 As Excel.Application Dim blnExcelIsRunning As Boolean 'Annahme: Excel ist geöffnet. '... = False, wenn Excel erst durch die ' Fehler-Routine gestartet wurde. ' Die entspr. Zuweisung erfolgt dort. blnExcelIsRunning = True On Error GoTo Fehler Set Excel2000 = GetObject(, "Excel.Application") On Error GoTo 0 With Excel2000 'Neue Mappe (<-- leer(!!)) .Workbooks.Add 'Zahl setzen, berechnen lassen, auslesen .Cells(1, 1) = lngZahl .Cells(1, 2) = "=Roman(A1)" fktRoman = .Cells(1, 2) '(Neue) Mappe schließen, nicht speichern .ActiveWorkbook.Close False 'Wenn Excel nicht geöffnet war ' dann schließen If Not blnExcelIsRunning Then .Quit End If End With 'Excel2000 Set Excel2000 = Nothing Exit Function Fehler: 'Excel war nicht geöffnet Set Excel2000 = CreateObject("Excel.Application") blnExcelIsRunning = False Resume Next End Function
piomode1 Geschrieben 8. April 2005 Autor Geschrieben 8. April 2005 Hi, Amstelchen! Hilft! :marine Super! Danke!! Trotzdem werde ich gleich noch ein weiteres Thema erstellen, in dem ich frage, wie man generell auf Excel-Funktionen aus Access heraus zugreift. (http://81.169.182.26/showthread.php?p=704448#post704448)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden