Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: TY am 04.02.14 - 11:36:43

Titel: Problem beim Öffnen einer Excel-Datei mit LotusScript
Beitrag von: TY am 04.02.14 - 11:36:43
Hallo zusammen,

ich hab ein Problem beim Öffnen einer Excel-Datei aus Notes heraus.

Ein Agent auf einem Windows Server 2008, auf dem ein 8.5.3er Client, FP3 läuft, soll eine Excel-Datei (.xls) öffnen, die auch auf dem Server liegt, Daten hineinschreiben und Excel wieder schließen. Das Ganze funktionierte auch schon sehr lange unter einem Windows Server 2003 und Office 2003. Die Datei liegt auf Laufwerkt D in einem Unterordner.
Seitdem auf Windows Server 2008 aktualisiert wurde, kam beim Öffnen der Datei die Fehlermeldung, dass sie nicht gefunden werden kann:

Fehler: 213 - Microsoft Excel: 'xxxxxxx.xls' wurde nicht gefunden. Überprüfen Sie die Rechtschreibung des Dateinamens, und überprüfen Sie, ob der Speicherort der Datei korrekt ist.  Wenn Sie versuchen, die Datei über die Liste der zuletzt geöffneten Dateien zu öffnen, stellen Sie sicher, dass die Datei nicht umbenannt, verschoben oder gelöscht wurde.

Bei mir lokal funktioniert dies einwandfrei, allerdings habe ich auch Office 2010. Die erste Vermutung lag bei der Office-Version. Also haben wir den Server auch auf Office 2010 aktualisiert, ohne Erfolg.
Anschließend haben wir die Rechte geprüft. Hier gibt es keine Einschränkungen. Auch wurde der User bereits ins Active Directory eingepflegt.

Irgendwo in einem Forum habe ich gelesen, dass es bei Windows Server 2008 einige Probleme mit Ordnerzugriffen gibt. Hier wurde vorgeschlagen einen weiteren Ordner anzulegen:
C:\Windows\SysWOW64\config\systemprofile\Desktop
Aber auch ohne Erfolg!

Folgender Code wurde getestet (den Part zum Schreiben der Daten in Excel kann ich mir sparen, da beim Versuch die Datei zu öffnen schon der Fehler kommt):

Code
Sub Initialize
		
	'-----------------------------------------------------------
	' Dimensionierung der lokalen Variablen
	'-----------------------------------------------------------
	Dim ses As New NotesSession
	Dim db As NotesDatabase
	Dim Excel As Variant
	Dim xlWorkbook As Variant
	Dim xlSheet As Variant
	Dim xlFilename As String, xlPfad As String
	
	'-----------------------------------------------------------
	' Initialisierung der lokalen Variablen
	'-----------------------------------------------------------
	Set db = ses.CurrentDatabase
	Set Excel = Nothing 
	 
	xlFilename="xxxxxxxxx"+Cstr(jahr+1)+".xls"
	'xlFilename="Test"+Cstr(jahr)+".xls" 

	
	On Error GoTo ErrorHandle	
	
	
	Stop

	'-----------------------------------------------------------
	' Connektion zu Excel, öffnen der Datei. 
	'-----------------------------------------------------------
	
	Print "Excel öffnen..."
	Print "Create Object"
	Set Excel = CreateObject( "Excel.Application" )
	Print "Excel anzeigen"
	'Excel.Visible = False '// Das Excel Fenster wird nicht angezeigt
	'Excel.Visible = True
	
	Print "Zugriff auf Filename"
	
	Excel.DefaultSaveFormat = 56
	Excel.DisplayAlerts = False
	
	Print xlFilename & " wird geöffnet..."
	
	'Excel.Workbooks.Open(xlPfad+xlFilename) '// Öffnen der Excel Datei
	Call Excel.Workbooks.Open ("D:\Unterordner\xxxxxxxxxxx.xls")       -> Hier kommt der Fehler
	'Excel.Workbooks.Add
	
	
	Print "Excel ActiveWorkbook"
	Set xlWorkbook = Excel.ActiveWorkbook
	Print "Excel ActiveSheet"
	Set xlSheet = xlWorkbook.ActiveSheet
	
	xlWorkbook.CheckCompatibility = False
	
	Print "Versuche Datei zu speichern"
	Stop
	xlWorkbook.save
	'xlWorkbook.saveAs xlPfad+xlFilename
	'xlWorkbook.saveAs "C:\Windows\SysWOW64\config\systemprofile\Desktop\xxxxxxxxxxxxx.xls", 56
	Print "Datei wurde gespeichert"
	
	xlWorkbook.CheckCompatibility = True
	
	Excel.quit
	'Excel.close
	Print"Excel geschlossen"
	
	Excel.DisplayAlerts = True
	'Sleep (20)
	
	Set Excel = Nothing

Fertig:
	
	Exit Sub
	
ErrorHandle:
	Print ("Fehler: "+Cstr(Err)+" - " + Error())
	MsgBox ("Fehler: "+Cstr(Err)+" - " + Error())
	If Not( excel Is Nothing) Then
		xlWorkbook.save
		excel.quit
		Set excel = Nothing
	End If
End Sub

Hat jemand eine Idee, woran es liegen könnte?

Danke und Gruß
Jürgen
Titel: Re: Problem beim Öffnen einer Excel-Datei mit LotusScript
Beitrag von: Tode am 04.02.14 - 11:41:22
Der Server läuft im Normalfall mit dem Account "System"... Hat dieser Account überhaupt Zugriff auf den Ordner "D:\Unterordner"? Ist d: evtl. sogar ein gemapptes Netzlaufwerk, dann hast du nämlich ein ganz anderes Problem...
Titel: Re: Problem beim Öffnen einer Excel-Datei mit LotusScript
Beitrag von: MaVo am 04.02.14 - 11:43:56
Jürgen, viell. hilft Dir das weiter: -> Excel automation on Windows Server 2008 x64: solution to SaveAs method problem (http://per.lausten.dk/blog/2011/04/excel-automation-on-windows-server-2008-x64.html)
Titel: Re: Problem beim Öffnen einer Excel-Datei mit LotusScript
Beitrag von: Tode am 04.02.14 - 12:11:38
@Martin:
Irgendwo in einem Forum habe ich gelesen, dass es bei Windows Server 2008 einige Probleme mit Ordnerzugriffen gibt. Hier wurde vorgeschlagen einen weiteren Ordner anzulegen:
C:\Windows\SysWOW64\config\systemprofile\Desktop
Aber auch ohne Erfolg!
Titel: Re: Problem beim Öffnen einer Excel-Datei mit LotusScript
Beitrag von: TY am 04.02.14 - 13:37:30
@Martin: Danke, aber schon erfolglos getestet

@Torsten: Der Zugriff auf alle Verzeichnisse erfolgt mit "Everyone" und läuft auch mit dem System-Account. Auch auf den Ordner/Unterordner hat dieser Zugriff. Der Ordner D ist ein normale Laufwerk, also nicht gemappt.
Wenn Excel 2010 eine xls-Datei öffnet kann schon mal eine Nachfrage kommen, wie die Datei geöffnet werden soll. Aber mit Excel.DisplayAlerts = False sind doch eigentlich alle Meldungen ausgeschaltet?

Könnte es evtl. mit einem anderen User - Beisp. NotesAdmin - funktionieren? Dazu müsste aber der Server neu gestartet werden. Das kann man dann nicht mal eben testen.
Titel: Re: Problem beim Öffnen einer Excel-Datei mit LotusScript
Beitrag von: MaVo am 04.02.14 - 14:07:59
@Martin:
Irgendwo in einem Forum habe ich gelesen, dass es bei Windows Server 2008 einige Probleme mit Ordnerzugriffen gibt. Hier wurde vorgeschlagen einen weiteren Ordner anzulegen:
C:\Windows\SysWOW64\config\systemprofile\Desktop
Aber auch ohne Erfolg!
@Thorsten: oh, hab ich wohl überlesen.