Toon posts:

[VBA] Outlook 2000 mail naar Access 2000

Pagina: 1
Acties:

Verwijderd

Topicstarter
In Outlook 2000, heb ik het formulier "Nieuw bericht" aangepast.

Ik heb een combobox(comProject) gemaakt waar je een project kan kiezen(deze komen uit Access). Dit werkt.

Maar nu wil ik deze gegevens naar Access sturen. Via de command button "cmdOpslaan".
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Sub cmdOpslaan_Click

Set appAccess = Item.Application.CreateObject("Access.Application")
    strOfficePath = appAccess.SysCmd(9)
    'MsgBox "Access folder: " & strOfficePath
    strVersion = Item.Application.version
    strDBName = strOfficePath & "Samples\Mail.mdb"
    'MsgBox "Folder path; " & strDBName

    'Check that there is an Outlook Contacts folder under the Access
    'database folder, and exit if not found
    Set fso = CreateObject("Scripting.FileSystemObject")

    On Error Resume Next
    Set fld = fso.GetFolder(strOfficePath)
    'MsgBox "Error No.: " & Err.Number & "; Description: " & Err.Description

    If Err.Number = 76 Then
        Set fld = fso.CreateFolder(strOfficePath)
        MsgBox strOfficePath & _
            " folder created; please copy the appropriate Access database to it and try again"
        Exit Sub
    End If

    Err.Clear

    'Office 97 DAO version
    Set dbe = Item.Application.CreateObject("DAO.DBEngine.35")
    strDBName = "Mail.mdb"
    
    'MsgBox "DBName: " & strDBName 
    strDBNameAndPath = strOfficePath & strDBName 

    'Test for existence of database 
    On Error Resume Next
    Set fld = fso.GetFile(strDBNameAndPath)
    'MsgBox "Error No.: " & Err.Number & "; Description: " & Err.Description

    If Err.Number = 53 Then
        MsgBox "Please copy " & strDBName & " to " & strOfficePath _
            & " and try again"
        Exit Sub
    End If

    Err.Clear

    Set wks = dbe.Workspaces(0)
    Set dbs = wks.OpenDatabase(strDBNameAndPath)

    'Open Access table containing contact data
    Set rst = dbs.OpenRecordset("mail")
    rst.AddNew
    
    If Item.ComProject <> "" Then rst.ComProject = Item.ComProject
    If Item.to <> "" Then rst.to = Item.to
    If Item.cc <> "" Then rst.cc = Item.cc
    If Item.Subject <> "" Then rst.Subject = Item.Onderwerp

    rst.Update
    rst.Close
    dbs.Close
    
End Sub

Nu lukt dat allmaal goed met (to, CC en Subject) Maar niet met comProject.

Hoe kan ik deze werkend laten worden?

En hoe kan ik ervoor zorgen dat deze code onder de knop "Verzenden" kan worden gezet in plaat van een eigenknop te maken??? Deze kan ik namelijk niet aanpassen in ontwerpmode omdat dit een vaste knop is in Outlook.

Verwijderd

En krijg je wel een waarde als je
code:
1
Debug.Print Item.ComProject

Doet?

En lukt het wel als je "bla" in de tabel opslaat in plaats van Item.ComProject?

Verwijderd

Op woensdag 22 mei 2002 09:40 schreef F1 het volgende:
code:
1
2
3
4
5
  On Error Resume Next
  If Err.Number = 76 Then

  End If
  Err.Clear

Dit is natuurlijk ook niet echt ideaal bij het debuggen van je app. Wat als er een andere fout dan 76 gebeurd? Dan ga je gewoon verder zonder dat er iets gebeurd, je merkt er niets van. Dat lijkt me niet echt slim.

Verwijderd

Topicstarter
Op woensdag 22 mei 2002 10:21 schreef JeroenDega het volgende:
En krijg je wel een waarde als je
code:
1
Debug.Print Item.ComProject

Doet?

En lukt het wel als je "bla" in de tabel opslaat in plaats van Item.ComProject?
Heeft niet geholpen.

Dit is de overige code
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Dim rst
Dim dao
Dim wks
Dim dbs
Dim nms
Dim fld
Dim itms
Dim itm
Dim strOfficePath
Dim appAccess
Dim ProjectArray(99, 2)

'Andere gedeelte
    Dim dbe
    Dim strAccessPath 
    Dim strDBNameAndPath
    Dim strDBName
    Dim fso



Function Item_Open()

    FillCombobox()

End Function

Function FillComboBox()

    Set appAccess = Item.Application.CreateObject("Access.Application")
    strOfficePath = appAccess.SysCmd(9)
    'MsgBox "Access folder: " & strOfficePath
    strVersion = Item.Application.version
    strDBName = strOfficePath & "Samples\Mail.mdb"
    'MsgBox "DBName; " & strDBName

' Versie van Access bepalen

    If Left(strVersion, 1) = "8" Then
        ' Access 97 DAO versie
        Set dbe = Application.CreateObject("DAO.DBEengine.35")
    ElseIf Left(strVersion, 1) = "9" Then
        ' Access 2000 DAO versie
        Set dbe = Application.CreateObject("DAO.DBEngine.36")
    Else 
        MsgBox "Onbekende Access version; cancel"
    End If

    strDBName = strOfficePath & "Samples\Mail.mdb"
    Set wks = dbe.Workspaces(0)
    Set dbs = wks.OpenDatabase(strDBName)
    appAccess.Quit

    'Gegevens van tabel Projectnamen halen
    Set rst = dbs.OpenRecordset("Projectnamen")
    Set ctl = Item.GetInspector.ModifiedFormPages("Bericht").Controls("comProject")

    Ctl.ColumnCount = 3
    ctl.ColumnWidths = "25; 75 pt; 200 pt"

    ProjectArray(99, 2) = rst.GetRows(100)
    ctl.Column() = ProjectArray(99, 2)
End Function

Sub cmdRefresh_Click
    FillcomboBox()
End Sub

Hij toont in de combobox dus 3 waardes. Maar hoeft alleen maar de eerste waarde te pakken.

De waarde die hij moet pakken is een Autonummering in de Access Tabel.
Deze waarde moet Outlook dus weer sturen naar een andere tabel in Access

Maar hij zie het niet als een waarde of zo :?


[Let nog niet op de fouten in het programmer werk. Ik probeer hem eerst te laten werken, en daarna goed te programmeren]

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Ik weet niet hoe het zit met de andere tabel, maar autonummering kan niet worden gewijzigd, is read only

Bikkelen gebeurt pas na 2:00


Verwijderd

Heeft niet geholpen.
Dat had ik ook niet verwacht. Het gaat er om waar het probleem ligt.
- Of je combobox bevat geen waarde
- Of je database verwacht een andere waarde.

Als je nu de vraag goed leest en beantwoordt, kunnen we je misschien helpen...

Verwijderd

Topicstarter
Op woensdag 22 mei 2002 14:00 schreef Sjnirk het volgende:
Ik weet niet hoe het zit met de andere tabel, maar autonummering kan niet worden gewijzigd, is read only
Dat maakt niet uit hier. Outlook hoeft in dit geval alleen maar de waarde weer te geven. En deze waarde vanaf Outlook naar Access in een andere tabel te stoppen.
Op woensdag 22 mei 2002 14:01 schreef JeroenDega het volgende:


- Of je combobox bevat geen waarde
De combobox bevat wel een waarde. Teminste dat geeft hij weer. Hij geeft de Primaire sleutel record aan. Dat is de waarde die naar de andere record moet worden gezet.
- Of je database verwacht een andere waarde.
De record waar de waarde in moet komen te staan staat als text. Dus daar kan hij ook geen foute aan geven. Heb hem ook geprobeerd om op numeriek te zetten. Maar dat werkte ook niet beter dan nu.

Ik denk dat hij toch de waarde niet kan zien of zo. Die in de cobobox staat.....
Pagina: 1