Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: ToLearn am 31.01.07 - 14:38:25
-
Hallo zusammen,
beim benutzen eines Scriptes um eine Datenbank mit allen Feldern zu Exportieren bekomme ich die Fehlermeldung "Object variable not set".
Ich habe dieses vorhandene Script nur angepasst und keinerlei Erfahrung mit Lotus Script. Hoffe jemand kann mir hier weiterhelfen. Den debugger habe ich auch eingeschaltet, wobei dieser keinerlei Fehler meldet.
Hier der Code:
Sub Click(Source As Button)
'Messagebox("Export momentan nicht möglich")
'vorübergehend auskommentiert am 21.11.2001
Dim Session As New NotesSession
Dim Doc As NotesDocument
Dim CurrDB As NotesDatabase
Dim Collection As NotesDocumentCollection
Dim Application As Variant
Dim Book As Variant
Dim Sheet As Variant
Dim i As Integer
Set CurrDB = Session.CurrentDatabase
Set Collection = CurrDB.UnprocessedDocuments
Set Doc = Collection.GetFirstDocument
Set Book=Nothing
Set Sheet = Nothing
Set Application=Nothing
Set Application = CreateObject("Excel.Application")
Set Book = Application.Workbooks.Add
If Application.Workbooks(1).Worksheets.Count=0 Then
Set sheet = Application.Workbooks(1).Worksheets.Add
End If
Set Sheet = Application.Workbooks(1).Worksheets(1)
Sheet.Name = "Komplett-Export"
Book.Application.Visible=True
ARangeValue = Sheet.Range("A1").Activate
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Allgemein EXCEL '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet.Range("A" & 1).Value = "Anrede"
Sheet.Range("B" & 1).Value = "Titel"
Sheet.Range("C" & 1).Value = "Vorname"
Sheet.Range("D" & 1).Value = "Nachname"
Sheet.Range("E" & 1).Value = "Firma"
Sheet.Range("F" & 1).Value = "Firma 2. Zeile"
Sheet.Range("G" & 1).Value = "Straße"
Sheet.Range("H" & 1).Value = "Plz"
Sheet.Range("I" & 1).Value = "Postfach"
Sheet.Range("J" & 1).Value = "PLZ Postfach"
Sheet.Range("K" & 1).Value = "Ort"
Sheet.Range("L" & 1).Value = "Land"
Sheet.Range("M" & 1).Value = "Telefon Büro"
Sheet.Range("N" & 1).Value = "Fax Büro"
Sheet.Range("O" & 1).Value = "Mobiltelefon"
Sheet.Range("P" & 1).Value = "Berufsbezeichnung"
Sheet.Range("Q" & 1).Value = "Abteilung"
Sheet.Range("R" & 1).Value = "Sekretärin"
Sheet.Range("S" & 1).Value = "Tel-Sekretärin"
Sheet.Range("T" & 1).Value = "E-Mail-Adresse"
Sheet.Range("U" & 1).Value = "Newsletter"
Sheet.Range("V" & 1).Value = "Web-Seite"
Sheet.Range("W" & 1).Value = "Sprache"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Privat EXCEL '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet.Range("X" & 1).Value = "Adresse privat"
Sheet.Range("Y" & 1).Value = "Postfach privat"
Sheet.Range("Z" & 1).Value = "Postleitzahl privat"
Sheet.Range("AA" & 1).Value = "Land privat"
Sheet.Range("AB" & 1).Value = "Telefon privat"
Sheet.Range("AC" & 1).Value = "Fax privat"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Kommentare EXCEL '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet.Range("AD" & 1).Value = "Kommentare"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Erweitert EXCEL '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet.Range("AE" & 1).Value = "Kontakter"
Sheet.Range("AF" & 1).Value = "Kundenbetreuer"
Sheet.Range("AG" & 1).Value = "Kontaktbewertung"
Sheet.Range("AH" & 1).Value = "Geburtstag"
Sheet.Range("AI" & 1).Value = "Kategorien"
Sheet.Range("AJ" & 1).Value = "Kontakter am"
Sheet.Range("AK" & 1).Value = "Kontakter erinnern zwecks"
Sheet.Range("AL" & 1).Value = "Kundenbetreuer am"
Sheet.Range("AM" & 1).Value = "Kundenbetreuer erinnern zwecks"
Sheet.Range("AN" & 1).Value = "Kontaktherkunft"
Sheet.Range("AO" & 1).Value = "Client-Center"
For i = 1 To Collection.Count
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Allgemein LOTUS '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set item = doc.GetFirstItem ("Title")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("A" & i + 1).Value = "" Then
Sheet.Range("A" & i + 1).Value = Sheet.Range("A" & i + 1).Value + ", " + iv
End If
If Sheet.Range("A" & i + 1).Value = "" Then
Sheet.Range("A" & i + 1).Value = iv
End If
End If
End Forall
Sheet.Range("B" & i+1).Value = Doc.Titel
Sheet.Range("C" & i+1).Value = Doc.FirstName
Sheet.Range("D" & i+1).Value = Doc.LastName
Sheet.Range("E" & i+1).Value = Doc.CompanyName
Sheet.Range("F" & i+1).Value = Doc.CompanyName2
Sheet.Range("G" & i+1).Value = Doc.OfficeStreetAddress
Sheet.Range("H" & i+1).Value = Doc.OfficeZip
Sheet.Range("I" & i+1).Value = Doc.Postfach
Sheet.Range("J" & i+1).Value = Doc.PlzPostfach
Sheet.Range("K" & i+1).Value = Doc.OfficeCity
Sheet.Range("L" & i+1).Value = Doc.OfficeCountry
Sheet.Range("M" & i+1).Value = Doc.OfficePhoneNumber
Sheet.Range("N" & i+1).Value = Doc.OfficeFAXPhoneNumber
Sheet.Range("O" & i+1).Value = Doc.CellPhoneNumber
Sheet.Range("P" & i+1).Value = Doc.JobTitle
Sheet.Range("Q" & i+1).Value = Doc.Department
Sheet.Range("R" & i+1).Value = Doc.Sekretar
Sheet.Range("S" & i+1).Value = Doc.Sekrtel
Sheet.Range("T" & i+1).Value = Doc.MailAddress
Sheet.Range("U" & i+1).Value = Doc.Newsticker
Sheet.Range("V" & i+1).Value = Doc.WebSite
Sheet.Range("W" & i+1).Value = Doc.Sprache
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Privat LOTUS '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet.Range("X" & i+1).Value = Doc.HomeAddress
Sheet.Range("Y" & i+1).Value = Doc.Postfachprivat
Sheet.Range("Z" & i+1).Value = Doc.Zip
Sheet.Range("AA" & i+1).Value = Doc.Country
Sheet.Range("AB" & i+1).Value = Doc.PhoneNumber
Sheet.Range("AC" & i+1).Value = Doc.HomeFAXPhoneNumber
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Kommentare LOTUS '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet.Range("AD" & i+1).Value = Doc.Comment
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' Reiter Erweitert LOTUS '''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set item = doc.GetFirstItem ("Kontakter")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("AE" & i + 1).Value = "" Then
Sheet.Range("AE" & i + 1).Value = Sheet.Range("AE" & i + 1).Value + ", " + iv
End If
If Sheet.Range("AE" & i + 1).Value = "" Then
Sheet.Range("AE" & i + 1).Value = iv
End If
End If
End Forall
Set item = doc.GetFirstItem ("Zustandig")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("AF" & i + 1).Value = "" Then
Sheet.Range("AF" & i + 1).Value = Sheet.Range("AF" & i + 1).Value + ", " + iv
End If
If Sheet.Range("AF" & i + 1).Value = "" Then
Sheet.Range("AF" & i + 1).Value = iv
End If
End If
End Forall
Set item = doc.GetFirstItem ("Kundenspez")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("AG" & i + 1).Value = "" Then
Sheet.Range("AG" & i + 1).Value = Sheet.Range("AG" & i + 1).Value + ", " + iv
End If
If Sheet.Range("AG" & i + 1).Value = "" Then
Sheet.Range("AG" & i + 1).Value = iv
End If
End If
End Forall
Sheet.Range("AH" & i+1).Value = Doc.Birthday
Set item = doc.GetFirstItem ("Categories")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("AI" & i + 1).Value = "" Then
Sheet.Range("AI" & i + 1).Value = Sheet.Range("AI" & i + 1).Value + ", " + iv
End If
If Sheet.Range("AI" & i + 1).Value = "" Then
Sheet.Range("AI" & i + 1).Value = iv
End If
End If
End Forall
Sheet.Range("AJ" & i+1).Value =Doc.Erinnerdatek
Set item = doc.GetFirstItem ("Erinnerungk")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("AK" & i + 1).Value = "" Then
Sheet.Range("AK" & i + 1).Value = Sheet.Range("AK" & i + 1).Value + ", " + iv
End If
If Sheet.Range("AK" & i + 1).Value = "" Then
Sheet.Range("AK" & i + 1).Value = iv
End If
End If
End Forall
Sheet.Range("AL" & i+1).Value =Doc.Erinnerdate
Set item = doc.GetFirstItem ("Erinnerung")
Forall iv In item.Values
If Not iv = "" Then
If Not Sheet.Range("AM" & i + 1).Value = "" Then
Sheet.Range("AM" & i + 1).Value = Sheet.Range("AM" & i + 1).Value + ", " + iv
End If
If Sheet.Range("AM" & i + 1).Value = "" Then
Sheet.Range("AM" & i + 1).Value = iv
End If
End If
End Forall
Sheet.Range("AN" & i+1).Value = Doc.Kontaktherkunft
Sheet.Range("AO" & i+1).Value = Doc.Clientcenter
Set Doc = Collection.GetNextDocument(Doc)
Next i
End Sub
-
Ich habe dieses vorhandene Script nur angepasst und keinerlei Erfahrung mit Lotus Script.
Was soll ich dazu noch sagen <kopfschüttel>
-
Immerhin schonmal eine Antwort. Wenn auch nicht wirklich hilfreich :(
-
Dann Bau erstmal eine Fehlerbehandlung ein...
-
Jetzt mal ganz im Ernst:
Du hast keine Ahnung, ich kenne nicht die Anwendung. Und jetzt sollen wir bzw. ich so eine Art Fernwartung machen ?
Mein Rat: besorg dir jemanden, der davon Ahnung hat.
Dann Bau erstmal eine Fehlerbehandlung ein...
Ohne Kenntnisse von LS ?? Wie soll das denn gehen ?
-
Das sollte er doch schaffen, mit Hilfe des Forums. Die Suche sollte soviel Material liefern ( Best Practices ) das er es hinbekommt.
Wenn es es damit nicht hinbekommt sollte er sich wirklich an Deinen Rat halten
-
Also Anwendung soll das ganze im Lotus Notes Client finden in der Version 5.09.
Mit dieser wird eine Datenbank geöffnet die wohl aus einer Kontaktdatenbank erstellt worden ist. Da gibt es die Möglichkeit für einen Komplettexport. Über den Designer habe ich das Script dazu gefunden und angepasst, da nicht alle Felder die in der Maske vorhanden waren auch im Export erschienen sind. Ich brauche im Prinzip alle Einträge der Datenbank in einem Excelsheet.
Soweit zu Anwendung. Ich würde sofort einen Externen mit dieser Aufgabe beauftragen...
-
Einfach eine Ansicht mit allen Feldern erstellen und dann über "Datei / Exportieren....(Format Lotus 1-2-3) " alle Datensätze exportieren.
-
Hallo nochmal und danke für die Antworten.
Eine Ansicht mit Feldern zum testen habe ich erstellt. Dies funktioniert leider auch nicht, das das Feld "Comment" nicht angezeigt werden kann.
Dieses ist im Format RTF vorhanden. Besteht die Möglichkeit, dieses Feld in "normalen Text" umzuwandeln und anschließend erst an Excel zu übergeben?
-
Nein, das geht nicht (auf diesem Wege). Die Summary-Property von RTFs ist False, daher können diese nicht in Ansichten dargestellt werden bzw. Ansichten können daher nicht darauf zugreifen.
-
Was bedeutet denn genau, nicht auf dem Wege? Welche Möglichkeiten habe ich denn? Ich gehe davon aus, dass sich das Script an diesem RTF Feld aufhängt.
Wie kann ich denn Grundsätzlich einen solchen Fehler abfangen, also das ich leere nicht gefüllte Felder habe, aber das Script nicht abbrechen soll sondern beim nächsten Feld weiter amcht.
-
Welche Möglichkeiten? LotusScript lernen. Oder einen Fachmann beauftragen, der sowas in ganz wenigen Stunden macht.
Etwas anderes bleibt da wirklich nicht. Ich versuche auch nicht, mein Auto selber zu inspizieren oder gar zu reparieren oder mir selber den Blinddarm zu entfernen.
Bernhard
-
Hallo ToLearn,
muss meinen Vorrednern Recht geben. Kurz eine Lotus Script Einführung geht nicht - dazu braucht man meiner Einschätzung nach Wochen dazu (abhängig von den Vorkenntnissen). Ich persönlich kann's auch nicht wirklich. Den Lösungsansatz mit dem Script vergiss am besten sofort, der geht mit Deinem Kenntnissstand in die Hose.
Der Ansatz mit der Ansicht von klauss könntest Du hinbekommen, und wenn die Datenbank nicht kritisch ist, und Du ein "aktuelles" Backup hast, kannst Du ein wenig rumspielen...
Mit dem Suchbegriff: RTF-Feld in Ansicht findest Du hier im Forum genügend Infos, um das ganze zu lösen. Falls nicht, einfach nochmals melden...
Gruss
Martin
-
Wir konnten das Problem in den Begriff bekommen, trotz nicht vorhandener Kenntnisse und dem nicht Besuch eines Workshops.
Durch eine Abfrage wie diese konnte die Fehlermeldung, mit dem nicht vorhanden Object abgefangen werden:
.
.
.
If Not (doc.GetFirstItem("FELDNAME") Is Nothing) Then
Sheet.Range("FELDEXCEL" & i+1).Value = Doc.FELDNAME
End If
.
.
.
Vielleicht hilft das ja wem weiter, wenn er auf selbiges Problem stoßen sollte. Wir allerdings sind Lotus zum glück bald los, da sich keiner bei uns wirklcih mit diesem System auskennt.
-
Wir allerdings sind Lotus zum glück bald los
Jetzt bist Du bei mir unten durch >:D
-
Wir allerdings sind Lotus zum glück bald los, da sich keiner bei uns wirklcih mit diesem System auskennt.
Ich schätze diese, durch Geschäftsbedürfnisse (business needs) getriebenen, Entscheidungen.
Wer braucht schon gute Produkte, billig muss es sein.
Na dann viel Spaß mit dem neuen, bunten und ach so billigen Ersatzprodukt.
-
Och sagen wir mal so, um ein bischen zu Mailen reicht Outlook und Co. Man kann bestimmt auch besser und einfacher mal eben was nach Excel exportieren.
Tja, den Rest regelt dann die Natur... :)
-
Wo wir schon gerade so lustig diskutieren :
Wenn es sich um eine reine Mailumgebung handelt, würde ich Notes auch in die Tonne kloppen. Da gibt es sicherlich bessere Umgebungen für am Markt.
Nur, wer kommt heute noch mit einer reinen Mailumgebung aus ?