Beiträge von friedmi

    Entweder Rechtsklick auf das Faximage oder über das Menü/Datei/Speichern. Dann gibt er automatisch *.tif als Dateityp vor. Jetzt kann ich den Ordner wählen und einen für mich aussagekräftigen Namen angeben, der aber wie schon gesagt nicht übernommen wird.

    Wenn ich empfangene Faxnachrichten in einem Festplattenorder unter einem Namen abspeichrn will, so wird zwar die Datei als *.tif im Ordner abgelegt. Jedoch geht der eingegebene Name verloren. D.h. die Datei liegt tatsächlich ohne Dateinamen auf der Festplatte. Komischer weise lässt sie sich hier problemlos benennen. (Davidfx unter Windows 7).

    O.k. ich habe jetzt versucht mich mit der Sache auseinander zu setzen und folgender Code sollte mir schon mal zeigen was an Feldern verfvügbar ist. Komischerweise sind das noch nicht enmal die Hälfte der Felder die vorhanden sind. Ausserdem variert das Ergebnis der "Count" Anweisung von Abfrage zu Abfrage. Ich kann mir das nicht erklären??? ?(
    Sub Test2()
    Dim oApp As DvApi32.IApplication
    Dim oAccount As DvApi32.Account
    Dim oArchive As DvApi32.Archive
    Dim oAddress As DvApi32.MessageItem2
    Dim oUserFields As DvApi32.UserFields
    Dim oFieldDefinition As DvApi32.FieldDefinition
    Dim oFieldDefinitions As DvApi32.FieldDefinitions
    Dim oFields As DvApi32.Fields
    Dim oField As DvApi32.Field
    Dim i As Integer
    Set oApp = CreateObject("DVOBJAPILib.DvISEApi")
    Set oAccount = oApp.Logon("Pentium11", "", "", "", "", "AUTH")
    Set oArchive = oAccount.GlobalAddressBook.Archive
    '###################################### Hinzufügen eines Globalen Feldes ##############
    Set oFieldDefinitions = oArchive.FieldDefinitions()
    '##################################### Archive FieldDefinitions auslesen ##############
    For i = 0 To oFieldDefinitions.Count() - 1
    Set oFieldDefinition = oFieldDefinitions.Item(i)
    MsgBox ("Name: " & vbTab & (oFieldDefinition.Name()) & vbCrLf & _
    "Type: " & vbTab & (oFieldDefinition.Type))
    Next
    oAccount.Logoff
    End Sub


    Ergebnis:




    FeldnameFeldTYp
    Title0
    NameSuffix0
    HomeState0
    PreferredType0
    WebSite0
    PersonalNumber0
    PhoneOther0
    SMSNumber0
    VoIPNumber0
    VoIPAddress0
    JobTitle0
    Birthday0
    BirthDayDate0
    Angezeigter Name 20
    Notes0
    Account0
    Address0
    Attachments0
    Category0
    Fields0
    FormattedNotes0
    ID0
    Parent0
    PDACategory0
    Picture0
    Priority0
    StatusTime0
    Subject0
    Type0
    Nr0
    Wo ist der Rest(Adressen etc) der ja definitiv unter "Alle Felder" in Tobit vorhanden ist ??

    Das funktioniert aber leider nicht mit allen zur Verfügung stehenden Felder im AddressItem, sonst wäre es kein Problem.
    Wie kann ich denn alle verfügabren Felder im AddressItem durchlaufen und mit Werten aus meiner Tabelle füllen. Wenn ich es richtig sehe muss ich dazu das MessageItem2 benutze. Ich bekomme die Syntax aber nicht auf die Reihe. Vielecht ist ja jemand so freundlich und hat einen Code zu Hand, der die nachfolgenden Felder belegt.



    DisplayName
    Salutation
    Title
    LastName
    FirstName
    MiddleInitial
    NameSuffix
    HomeStreet
    HomeZip
    HomeCity
    HomeState
    HomeCountry
    PhonePrivate
    PhonePrivate2
    AltFaxNumber
    PhoneMobile
    AltEMail
    IMA-Aol
    IMA-ICQ
    IMA-Msn
    IMA-Other
    IMA-Skype
    Company
    Department
    Office
    Street
    ZipCode
    City
    State
    Country
    PhoneCompany
    PhoneOffice
    PhoneOffice2
    FaxNumber
    PhoneCar
    EMail
    PreferredType
    WebSite
    Manager
    Assistant
    PhoneAssistant
    PersonalNumber
    Home2Street
    Home2Zip
    Home2City
    Home2State
    Home2Country
    eMail3
    FaxOther
    PhoneCallback
    PhoneISDN
    PhoneOther
    PhonePager
    PhonePrimary
    PhoneRadio
    SMSNumber
    Telex
    VoiceBox
    VoIPNumber
    VoIPAddress
    Nickname
    Profession
    JobTitle
    Birthday
    BirthDayDate
    AnniversaryDate
    LicensePlateNumber
    SpouseName
    Children
    Notes

    Es geht mir um Davidfx und David Zehn.
    Ich lese meine Adressbücher in eine Excelliste, weil sich dort vieles einfacher korriegieren, importieren oder hinzufügen lässt.
    DAs funktioniert einwandfrei:
    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
    ActiveSheet.Rows("4:65536").ClearContents
    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
    Set oAddress = oAddressbook.Item(x)
    Set oAddressItem = oAddress.AddressItem
    For Z = 1 To 69
    oFieldName = Worksheets("Adressliste").Cells(3, Z).Value
    On Error Resume Next
    Worksheets("Adressliste").Cells(x + 4, Z).Value = oAddressItem.GetField(oFieldName)
    Next Z
    Next x
    End Sub



    Wenn ich aber die Liste zurück in's David Archiv schreiebn möchte habe ich Probleme die Felder zu belegen.
    Laut der Doku sollte es aber doch so funktionieren (der rotmarkierte Teil funktioniert nicht):
    Sub Write()
    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, oFieldVal
    Set oApp = CreateObject("DVOBJAPILib.DvISEAPI")
    Set oAcc = oApp.Logon("", "", "", "", "", "NOAUTH")
    Set oArchive = oAcc.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalAddress)
    '##############Neuen Kontakt im Adressbuch erzeugen (Index=0)####################
    Set oAddressItem = oArchive.NewItem(DvApi32.DvItemTypes.DvAddressItem)
    oAddressItem.DisplayName = "Test User"
    oAddressItem.AltEMail = "chef@firma.de"
    oAddressItem.AltFaxNumber = "555-333-555"
    oAddressItem.Category = "2"
    oAddressItem.City = " New York"
    oAddressItem.Company = "Firm"
    oAddressItem.Birthday = "15.06.1960"
    oAddressItem.Save
    '##############Kontrolle on Kontakt angelegt wurde############
    Set oAddressbook = oAcc.PersonalAddressBook
    Set oAddress = oAddressbook.Item(0)
    Set oAddressItem = oAddress.AddressItem
    MsgBox oAddressItem.DisplayName
    '##########################Felder im Kontakt ändern##########
    oFieldName = "Birthday"
    oFieldValue = "10.10.1963"
    oAddressItem.SetField(oFieldName,oFieldValue)
    oAddressItem.Save()

    End Sub

    Ist die Dokumentation der DVAPI hinsichtlich des BeBefehls SetField für das
    AddreessItem korrekt?
    Ich kann mit dem GetField Befehl wunderbar mein
    komplettes Adressbuch mit allen Feldern auslesen. Ein Adressfeld mit dem
    SetField Befehl neu zu schreiben ist mir bisher nicht gelungen.
    Trotz
    stundenlangem experimentieren ist mir das schreiben eines Wertes in ein
    Adressfeld noch nicht gelungen.


    Sub SetField(vField, vValue)
    Hat vielecht jemand ein funktionierendes Code Beispiel für VB
    Danke und Gruß Michael

    Hallo Jens,
    meine Angaben beziehen sich auf David Zehn und David fx.
    Ich habe in meinem Beitrag ja schon geschrieben das ich alle Felder auslesen konnte. Dazu ist es aber nötig die "Feldnamen" zu kennen. Abfrage über die API sieht ja wie folgt aus.
    oAddressItem.GetField(City)
    oAddressItem.GetField(Birthday)
    Das setzt aber voraus das man die Feldnamen (City,Birthday) kennt.
    Zum anderen weiß man nie wie viele Felder es gibt, da der Count Befehl inerhalb des Objects AddressItem ja auch nicht existent ist.Ich strebe immer allgemein gültige Lösungen an die auch nach Änderungen der Felder (Name; Anzahl) funktionieren.
    For a= 1 to oAddressItem.Fileds.Count (Wäre doch toll wenn das die tatsächlich vorhandene Anzahl an Feldern in einer Adresse wären)
    oName=oAddressItem.Fields(a).Name (Feldnamen bestimmen und gleichzeitig als Tabellenkopf verwenden)
    oAddressItem.GetField(oName) (vorher identifizierte Feldnamen zum auslesen der Inhalte verwenden und in Tabelle eintragen)
    Mit der Prozedur wäre es egal wenn sich am Aufbau der Adessdatenbank was ändert (Feldnamen oder Anzahl).
    Die Sache wäre immer gültig und man müsste nicht ständig nach den Feldnamen "forschen".
    Gruß Michael

    Hallo Jens,
    das kann ich mir eigentlich nicht vorstellen. Ich hatte zum testen die Felder eines Kontakts mit den Feldnamen des Feldes selber gefüllt und dann die Abfrage via API mit den Feldnamen gestartet die in im Infocenter unter alle Felder vorgegeben sind, um gleichzeitig eine Zuordnung der Felder zu erhalten, da es zur Doku einige Abweichungen gab. Wenn du dir mein Sheet in der abgehangenen Datei an siehst wirst du feststellen das die Abfrage alle verfügbaren Felder zurück gebracht hat. Ich finde es nur " zum weinen", wenn sich was an den Strukturen ändert, jedes mal auf's neue nach den neuen Feldnamen "forschen" zu müssen
    Gruß Michael


    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