Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: developperFLY am 08.01.10 - 09:37:41
-
Hallo zusammen
Ich muss einen Export einer DB machen. Mir ist es möglich das File soweit mit den Daten zu befüllen. Nur habe ich Mühe mit dem Save and Close. Es wird kein bestehendes Excel File geöffnet, sondern nur eines erstellt und soll dan gespeichert werden.
'erstellungen
Set Excel = CreateObject("Excel.Application")
Excel.Visible = False
Call Excel.Workbook.add
Set xlWorkbook = Excel.Workbooks
Set xlSheet = Excel.Workbooks(1).Worksheets(1)
'Mit daten befüllen
'......
'Abschluss
Call Excel.SaveAs(xlFilename)
Call xlWorkbook.Close()
Call Excel.Quit()
Set Excel = Nothing
Also irgendwie hagt er mit Excel.SaveAs ... Gibt es irgendwo eine Referenz seite wo alle Excel Klassen aufgelistet sind?
-
In der VBA-Hilfe von Ecxel.
THT
Rainer
-
Hallo,
Auch zu empfehlen ist, wenn Du in der VBA-Umgebung bist und die Taste F2 (Objektkatalog) betaetigst.
Andreas
-
Call Excel.SaveWorkspace([Filename])
habe ich gefunden, aber, er frägt nun folgt ein SPeicher Dialog. Und er frägt den User, wo soll er das Excel File speichern.
Wie kann ich das verstecken. Den die Funktion übernimmt keinen parameter sonst mehr? (forcieren).
-
Indem Du den vollen Pfad mitgibst.
z.B. c:\temp\blabla.xls
Und das aktive Workbook nimmst
ActiveWorkbook.SaveAs filename, _
FileFormat:=xlExcel9795, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
-
Hallo,
Und um es in eine Prozedur-Schreibweise zu packen
Call Workbook.SaveAs(Filename, Fileformat)
Mehr brauchst Du eigentlich nicht.
Andreas
-
Hallo,
ich hab das jetzt so gemacht, weil die angegebenen Beispiele bei mir nicht funktioniert haben.
Call oExcel.SaveWorkbook("T:\Programmdaten\F-Call\b1s-ma_2.xls")
Delete oExcel
Notes legt die Datei an, aber wenn ich sie mit Excel öffnen will kommt die Fehlermeldung dass ich eine Datei öffnen möchte, deren Format von dem in der Dateierweiterung angegebenen abweicht.
Ich öffne dann trotzdem und speichere sie mit Excel wieder ab. Dann kommt die Meldung nicht mehr und die Datei ist doppelt so groß wie vorher.
Kann man da was machen, dass dies nicht mehr vorkommt? Ich möchte diese Datei automatisiert regelmäßig erzeugen und per Mail versenden.
Gruß
Wolfgang
-
Um bei Deinem Beispiel zu bleiben.
Call oExcel.ActiveWorkbook.SaveAs(<Dein Dateiname>, <Dateiformat>)
Die Konstanten und deren Werte - fuer das Dateiformat - kannst Du der VBA-Hilfe in Excel entnehmen.
Auch wuerde ich nicht sofort mit Delete oExcel arbeiten, sondern erst einmal
oExcel.Quit und dann erst Dein Delete.
Andreas
-
Ich vergass noch.
Ich möchte diese Datei automatisiert regelmäßig erzeugen und per Mail versenden
Was kann man sich hierunter vorstellen?
Wenn ein periodischer Agent sich dahinter verbergen soll, dann bekommst Du auf jeden Fall Probleme beim Ablegen der Daten auf einem Netzwerklaufwerk.
Andreas
-
Wenn das alles automatisiert läuft lege ich die Datei natürlich auf einem Serverlaufwerk ab.
Hab festgestellt, dass der Befehl oExcel.Quit auch nicht funktioniert, als Fehler erscheint:
Not a member: QUIT
-
dass der Befehl oExcel.Quit auch nicht funktioniert
Das wundert mich nun doch etwas.
Denn genau diesen Befehl verwende ich bei meinen Export-Routinen permanent (Excel 97 - 2007) und hatte noch nie derartige Probleme.
lege ich die Datei natürlich auf einem Serverlaufwerk ab
Genau das wird ja dann das Problem.
Agent = scheduled (laeuft unter dem Benutzer, unter dem der Server gestartet wurden)
Da dieser jedoch in den meisten Faellen als Dienst definiert ist, hat der Server ein Systemkonto und dieses hat keine Möglichkeit auf Netzwerklaufwerke zuzugreifen.
Wurde in den verschiedenen LN-Foren bereits ausgiebig diskutiert.
Andreas
-
lege ich die Datei natürlich auf einem Serverlaufwerk ab
Genau das wird ja dann das Problem.
Agent = scheduled (laeuft unter dem Benutzer, unter dem der Server gestartet wurden)
Da dieser jedoch in den meisten Faellen als Dienst definiert ist, hat der Server ein Systemkonto und dieses hat keine Möglichkeit auf Netzwerklaufwerke zuzugreifen.
Wurde in den verschiedenen LN-Foren bereits ausgiebig diskutiert.
Andreas
mit Serverlaufwerk meine ich Laufwerk auf Domino-Server