Vielen Dank !!
Da hat doch wirklich wieder die Legastenie zugeschlagen!
Nachdem der fehlende Buchstabe eingesetzt und so das Problem behoben ist, arbeitet das Programm, wie es soll!
Danke.
Vielen Dank !!
Da hat doch wirklich wieder die Legastenie zugeschlagen!
Nachdem der fehlende Buchstabe eingesetzt und so das Problem behoben ist, arbeitet das Programm, wie es soll!
Danke.
Die Variable Email ist vom Typ Variant und stellt einen Mehrfachwert dar.
Ich habe Sie durch zwei Variable EmailA und EmailV ersetzt, damit ich in einer MessageBox die Ergebnisse angezeigt bekomme.
Vielleicht vereinfacht die Darstellung des gesamten Programmentwurs die Diskussion:
Das Programm macht zur Kontrolle für jeden verarbeiteten Satz eine MessageBox auf und zeigt an, was passiert ist.
Wenn alles zu meiner Zufriedenheit arbeitet, dann wollte ich die Box abschalten.
Sub Initialize
Dim session As New NotesSession
Dim dbAdr As NotesDatabase
Dim dbVip As NotesDatabase
Dim viAdr As NotesView
Dim viVip As NotesView
Dim eAdr As NotesViewEntry
Dim eVip As NotesViewEntry
Dim vecAdr As NotesViewEntryCollection
Dim vecVip As NotesViewEntryCollection
Dim docVip As NotesDocument
Dim docAdr As NotesDocument
Dim crlf As String
crlf$ = Chr(13) & Chr(10) ' Carriage return/line feed
Dim KdNR As Variant
Dim boxType As Long, answer As Integer
boxType& = 4'MB_YESNO + MB_ICONQUESTION
Dim EmailA As Variant
Dim EmailV As Variant
Set dbVip = session.CurrentDatabase
Set dbAdr = session.GetDatabase("cadom0","Adressen.nsf")
Set viAdr = dbAdr.GetView("Kunden")
Set viVip = dbVip.GetView("CaKu")
Set vecVip = viVip.AllEntries
Set eVip = vecVip.GetFirstEntry()
Set docVip = eVip.Document
Do While Not (docVip Is Nothing)
KdNr = docVip.GetItemValue("KdNr")
key = KdNr(0)
Set docAdr=viAdr.GetDocumentByKey(key)
If Not ( docAdr Is Nothing) Then
EmailA = docAdr.GetItemValue("MailAddress")
Call docVip.ReplaceItemValue("MailAdress",EmailA)
Call docVip.Save(True,True)
EmailV = docVip.GetItemValue("MailAddress")
Else
EmailA(0) = "Nicht gefunden"
End If
answer% = Messagebox("Kundennummer:=" & KdNr(0) & crlf$ & _
"EmailA:=" & EmailA(0) & crlf$ & _
"EmailV:=" & EmailV(0) & crlf$ & _
"Weiter machen ?", boxType&,"Continue?")
'If answer% = IDNO Then
If answer% = 7 Then
Exit Do
End If
Set eVip = vecVip.GetNextEntry(eVip)
If eVip Is Nothing Then
Exit Do
End If
Set docVip = eVip.Document
Loop
End Sub
Eine MessageBox habe ich als Beispiel beigefügt.
Ich freue mich schon auf die nächsten Tipps!
MF
Danke für die prompte Antwort.
Ich habe das Programm im Debugger geprüft und mich davon überzeugt, dass sonst keine Fehler enthalten sind.
Die Aufgabe ist der Abgleich zweier Notes-Adressbücher. Das betroffene Feld ist das Standart MailAddress-Feld:
Hier sollte jetzt eigentlich das Bild erscheinen:
MF
Hallo an alle!
Ich versuche aus einer AdressDB die E-Mail zu ermitteln und sie in eine zweite DB zu übertragen.
Das lesen der Quelle und das Positionieren des Ziels arbeitet. Doch das Aktualisieren des Feldinhaltes im Ziel arbeitet nicht.
Email = docAdr.GetItemValue("MailAdress")
call docVip.ReplaceItemValue("MailAdress", Email)
call docVip.Save(True, True )
Nach dem Handbuch sollte jetzt der Zugriff:
Test = docVip.GetItemValue("MailAdress")
den eingestellten Wert in Test liefern. Doch der Feldinhalt hat sich nicht geändert.
Ist das Item dagegen noch nicht in der DB, dann wird es sauber angelegt.
Was mache ich falsch ?
MF