Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: ToLearn am 31.01.07 - 14:38:25

Titel: Export einer Kontaktdatenbank
Beitrag 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
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: klaussal am 31.01.07 - 14:59:25
Zitat
Ich habe dieses vorhandene Script nur angepasst und keinerlei Erfahrung mit Lotus Script.

Was soll ich dazu noch sagen <kopfschüttel>
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: ToLearn am 31.01.07 - 15:08:38
Immerhin schonmal eine Antwort. Wenn auch nicht wirklich hilfreich  :(
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: DerAndre am 31.01.07 - 15:11:37
Dann Bau erstmal eine Fehlerbehandlung ein...
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: klaussal am 31.01.07 - 15:12:34
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.

Zitat
Dann Bau erstmal eine Fehlerbehandlung ein...
Ohne Kenntnisse von LS ?? Wie soll das denn gehen ?
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: DerAndre am 31.01.07 - 15:21:26
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
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: ToLearn am 31.01.07 - 15:21:56
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...
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: klaussal am 31.01.07 - 15:58:24
Einfach eine Ansicht mit allen Feldern erstellen und dann über "Datei / Exportieren....(Format Lotus 1-2-3) " alle Datensätze exportieren.
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: ToLearn am 31.01.07 - 16:30:16
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?
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: koehlerbv am 31.01.07 - 16:39:29
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.

Titel: Re: Export einer Kontaktdatenbank
Beitrag von: ToLearn am 31.01.07 - 16:54:06
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.
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: koehlerbv am 31.01.07 - 17:18:47
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
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: MartinG am 31.01.07 - 18:12:37
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
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: ToLearn am 01.02.07 - 13:54:39
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.

Titel: Re: Export einer Kontaktdatenbank
Beitrag von: klaussal am 01.02.07 - 14:08:58
Zitat
Wir allerdings sind Lotus zum glück bald los

Jetzt bist Du bei mir unten durch  >:D
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: m3 am 01.02.07 - 14:13:03
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.
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: DerAndre am 01.02.07 - 14:23:01
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...  :)
Titel: Re: Export einer Kontaktdatenbank
Beitrag von: Driri am 01.02.07 - 16:10:52
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 ?