piomode1 Geschrieben 8. April 2005 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 8. April 2005 Teilen Geschrieben 8. April 2005 vielleicht hilft dir das. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
piomode1 Geschrieben 8. April 2005 Autor Teilen 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.