Hallo Kollegen,
Folgenden VB Code verwende ich um
über die DVAPI meine Adressdaten auszulesen. Leider gefällt mir an der gannzen
Sache nicht da es keine Möglichkeit gibt alle verfügbaren Adressfelder innerhalb
des Objects AddressItem mittels eines Count Befehls zu "zählen" um dann die
Namen über den Index auszulesen und weiter zu verwenden.
Sub
Get_address()
Dim oApp As DvApi32.IApplication
Dim oAcc As
DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oAddressbook As
DvApi32.AddressBook
Dim oAddressItem As DvApi32.AddressItem
Dim oAddress
As DvApi32.Address
Dim oFieldName
Dim fso, txtfile
Set oApp =
CreateObject("DVOBJAPILib.DvISEAPI")
Set oAcc = oApp.Logon("", "", "", "",
"", "NOAUTH")
Set oArchive =
oAcc.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalAddress)
Set
oAddressItem = oArchive.NewItem(DvApi32.DvItemTypes.DvAddressItem)
Set
oAddressbook = oAcc.GlobalAddressBook
For x = 0 To oAddressbook.Count - 1
'Anzahl der Adressbucheinträge ermitteln
Set oAddress =
oAddressbook.Item(x)
Set oAddressItem = oAddress.AddressItem
For a = 0 To
oAddress.AddressItem.Fields.Count 'Anzahl der Adressfelder im object AddressItem
(so dachte ich es mir zumindest)
MsgBox oAddressItem.Fields(a).Name ' Das
Ergebnis sind aber leider nicht alle existenten Felder im object AddressItem
Warum nicht?????????????
Next a
For Z = 1 To 86
oFieldName =
Worksheets("Adressliste").Cells(1, Z).Value
On Error Resume
Next
Worksheets("Adressliste").Cells(x + 2, Z).Value =
oAddressItem.GetField(oFieldName)
Next Z
Next x
End Sub
Es muss
doch eine Möglichkeit geben die Felder innerhalb eines Adresseintrages
auszulesen?? Oder muss man die tatsächlich vom Feldnamen her
kennen??
Vielen DAnk und Gruß Michael