Hallo zusammen,
wir nutzen schon seit langer Zeit ein Excelimportscript für unsere Datenbanken.
Dies hat immer sehr zuverlässig funktioniert, doch nun kam Office 365 ;-)
Hat jemand eine Idee auf welche Versionsnummer das Script nun angepasst werden muss damit es mit O365 funktioniert.
Ich habe es mit der 15 probiert, erhalte jedoch eine Fehlermeldung bei der Ausführung.
Hat jemand einen Tipp / eine Idee?
Vielen Dank für eure HilfeHier das script:
Option Public
Option Declare
Sub Initialize
' Dieser Agent enthält Routinen zum Import von Daten aus einem Excel File.
' Die Datei kann über das File System ausgewählt werden. Anschließend werden die Daten ausgelesen und
' über einen Schlüsselbegriff mit der Datenbank verglichen und bei Bedarf entsprechend angepasst
' eingetragen
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument(db)
Dim item As NotesItem
Dim One As String
Dim row As Integer
Dim written, records,ver As Integer
Dim FName As String
Dim VName As String
Dim xlFilename As String
Dim ans As String
Dim Excel As Variant
Dim xlWorkbook As Variant
Dim xlSheet As Variant
Dim fieldname1 As String
Dim fieldname2 As String
Dim keygeraet As String
On Error Goto Error_call
' Datei finden
ans$ = Inputbox$("Speicherort der Excel Datei eingeben ","Info","c:\Import.xls")
If ans$ = "" Then
xlFilename = "c:\import.xls" ' Default Excel Dateiname
Else
xlFilename = ans$ ' Eingegebener Excel Dateiname
End If
' Welche Version von Excel wird benutzt
ans$ = Inputbox$("Benutzen sie O365 ? ","Info","Y")
If ans$ = "n" Or ans$ = "N" Then
ver= 14
Else
ver= 15
End If
Set view = db.GetView("$GeraetByNumber") ' Alle Geräte nach seriennummer
' Als nächstes eine Verbindung zu Excel herstellen und die Datei öffnen
' Dann werden die Zeilen der Reihe nach eingelesen und mit den vorhandenen
' Daten verglichen.
Print "mit Excel verbinden..."
If ver =14 Then
Set Excel = CreateObject( "Excel.Application.14" ) ' für windows7
Else
Set Excel = CreateObject( "Excel.Application.15" ) ' für office365
End If
'Excel.Visible = False ' excel Fenster wird nicht angezeigt
Print "Öffne " & xlFilename & "..."
Excel.Workbooks.Open xlFilename ' Excel Datei öffnen
Set xlWorkbook = Excel.ActiveWorkbook
Set xlSheet = xlWorkbook.ActiveSheet
' Geh durch die Excel Zeilen und hole die Daten in Notes rein
row = 0
written = 0
Print "Import aus Excel wird gestartet..."
Do While True
With xlSheet
' Feld Definitionen
row = row +1
' Die erste Zeile ist für die Feldnamen.
If row=1 Then
Fieldname1=.Cells( row, 1 ).Value
Fieldname2=.Cells( row, 2 ).Value
If Fieldname1 = "" Or Fieldname2 = "" Then
Print "Verarbeitung wegen leerem Feldnamen beendet"
Exit Do
End If
Else
Fieldname1=.Cells( row, 1 ).Value
If Fieldname1 = "" Then
Print "Verarbeitung wegen leerer Gerätenummer beendet"
Exit Do
End If
' finde heraus, ob das Schlüsselwort (erste Spalte des Excel Files) in der Ansicht vorhanden ist
KeyGeraet = .cells(row, 1).value
Set doc = view.GetDocumentByKey(KeyGeraet,True)
If Not doc Is Nothing Then
Set item = doc.ReplaceItemValue( Fieldname2, .Cells( row, 2 ).Value )
Call doc.Save( True, True ) 'Save the new doc
End If
' speicher für doc löschen
Set doc = Nothing
written = written + 1
Print Str(written)
End If
End With
Loop
Goto Done
Error_call:
Messagebox "Prüfen Sie den speicherort der Excel Datei oder die Software Version", 64,"Warnung ! "
Print " " ' Status Zeile löschen
Exit Sub
Done:
Print "Verbindung mit Excel unterbrechen..."
xlWorkbook.Close False 'Excel Datei ohne zu Speichern wieder schließen
Excel.Quit 'Excel Schließen
Set Excel = Nothing ' Speicher wieder freigeben
Print "Verarbeitete Zeilen " +Cstr(row) ' Status Z
End Sub