AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
16.12.18 - 07:12:58
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 8
| |-+  ND8: Entwicklung (Moderatoren: Axel, Thomas Schulte, koehlerbv)
| | |-+  Excelimport anpassen von Windows7 auf Office365
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Excelimport anpassen von Windows7 auf Office365  (Gelesen 823 mal)
dh-paule
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 199


DNUG Award 2006


« am: 22.10.18 - 09:12:16 »

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 Hilfe

Hier das script:

Code:

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

Gespeichert

Life on earth may be expensive,
but it does include an annual free trip around the sun


_________________________________________________________
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6104


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #1 am: 22.10.18 - 09:24:43 »

Lass die Version einfach weg, dann kannst Du DIr auch die Abfrage sparen, die der Benutzer sowieso nicht beantworten kann ("Woher soll ich das wissen, ob ich O365 nutze, und was ist das überhaupt")

Code:
Set Excel = CreateObject("Excel.application")
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
dh-paule
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 199


DNUG Award 2006


« Antworten #2 am: 23.10.18 - 13:04:25 »

Danke Dir… so einfach kanns gehen :-)
Da war mal wieder der Wald mit den vielen Bäumen…

P.S. mit Version 16 statt 15 klappts auch
Gespeichert

Life on earth may be expensive,
but it does include an annual free trip around the sun


_________________________________________________________
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: