Toon posts:

[VBA & Outlook] outlook items linken?

Pagina: 1
Acties:

Verwijderd

Topicstarter
situatie:

map "klanten" die "contactpersoon items" bevat
map "problemen die "E-Mail an Postitems" bevat

voor beide heb ik de forms al aangepast, en bij het weergeven van een klant een Outlook View Control toegevoegd.

Nu zoek ik een manier om de problemen aan klanten te linken, zodat ik later ook restricties kan zetten van de ViewControl, zodat alleen de problemen van de betreffende klant daar worden getoond.

Mijn eerste probleem is dus het linken van die items. Ik had een boek gekocht "Building applications with Microsoft Outlook version 2002" waar dit in wordt gedaan.. hoe ze dit echter gedaan hebben zeggen ze er niet bij, het enige wat ik heb is een lap code. (waar de helft al niet van klopt omdat ze variabelen niet hebben gedeclareerd of ineens andere namen gaan gebruiken).

het boek doet het op de volgende manier:
When a company item is created, a unique identifier is created and stored in the Account field. The Account field is a default property of a contact item. The Account field for a company item will be a combination of a substring of the company name and a randomly generated number. For example, the Account field for a company named The Big Cheese might be BigChe797909. The benefit of using this unique account number is that several types of items can be linked to a parent Company item without using the Links collection object. Because the unique ID for a company is created on the fly, this approach does not mandate that a company must first exist in a relational database such as Northwind. This Account field also facilitates the creation of Company items for companies that are prospective customers. Prospective customers do not have unique IDs in a corporate database. When a user creates a new Company item, either on line or off line, an account value is generated automatically by the following code. The PropertyChange event can generate a new account value or change the company name in related company contact items based upon modification of the CompanyName property in an existing company.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Sub Item_PropertyChange(ByVal Name)
Dim lowerbound, upperbound, RandomID, strRandomId, intLength
‘Change INT_MAX to increase size of numeric portion of Item.Account
Const INT_MAX = 6
Select Case Name
    Case "CompanyName"
        ‘Only change Account field if blank 
        If Item.Account = "" Then
            lowerbound = 1
            ‘Use Clng to force Long As 999999
            upperbound = CLng(String(INT_MAX,57))
            Randomize()
            RandomID = _
            Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
                strRandomId = Trim(CStr(RandomID))
            intLength = Len(strRandomID)
            If intLength < INT_MAX then
                &#8216;Prepend 0 if not INT_MAX characters
                strRandomID = _
                String((INT_MAX-intLength),48) & strRandomID
            End If
            &#8216;Assign unique account number
            Item.Account = CleanString(Item.CompanyName) _
                & strRandomID
            Item.Subject = Item.CompanyName
        Else
            &#8216;Company name has changed, used in Item_Write
            blnChangeCompany = True
        End If
End Select
End Sub

Function CleanString(InString)
    Dim OutString, ch, i, Keysize
    &#8216;Change Keysize value to change length of alpha characters
    Keysize = 6
    For i = 1 to Len(InString)
        ch = Right(Left(InString,i),1)
        If Len(OutString) > Keysize Then
            Exit For
        End If
        If InStr("&#8216; """,ch) = 0 Then
            OutString = OutString & ch
        End if
    Next
    CleanString = OutString
End Function


ik snap alleen niet helemaal wat er nou gebeurd, want er wordt een unieke string gegenereerd en verbonden met de contact...maar hoe de items vervolgens worden gelinkt??
heeft iemand hier ervaring mee die mij zou kunnen helpen, of iets van een stap-voor-stap guide hoe je het eenvoudig kan doen? want ik begin een beetje gefrustreerd te raken van dat boek of kant-en-klare-code die je uren aan het doorspitten bent en uiteindelijk nog niet aan de praat krijgt... :'(

(het hoeft niet op deze manier te gebeuren... zolang de items aan elkaar gelinkt worden..)

ik zou dus op de volgende manier items willen gaan toevoegen:
1. creeer een klant
2. selecteer/bekijk een klant
3. klik op "NIEUW PROBLEEM" (knopje ofzo)
4. vul probleem etc in en sla op (notitie item ofzo opslaan in de folder problemen)
5. wanneer ik weer de klant ga bekijken, wordt het probleem weergegeven in de ViewControl...

[ Voor 3% gewijzigd door Verwijderd op 23-04-2003 12:22 ]


Verwijderd

Topicstarter
het moet te doen zijn met die linkobjects... (en dan met .parent ofzo)
maar hoe kan ik dan van een klant bijvoorbeeld problemen aanmaken (dus dat probleem weet dat zijn parent die en die klant is, en andersom?)

iemand :?

Verwijderd

Topicstarter
*kick*

ik maak nu gebruik van EntryID, alleen wanneer een Item wordt verplaatst, veranderd dit ID, iemand een beter manier om die items te linken of een manier om dat veranderen van ID's tegen te gaan??