Ik heb een formulier met een knop erop. Op dat formulier staan ook nog een aantal velden met klantgegevens erin. Ik heb nou een functie waarin je op kan geven hoe je iets wil afdrukken.
De volgende code plaats ik bij event onClick:
Dit roept de volgende code aan.
Op het rapport moet de klantnaam in de kop komen te staan die uit het formulier gehaald word. Nou zou ik dus graag willen kunnen achterhalen door welk formulier bovenstaande code aangeroepen werd. De klantnaam op het rapport wil ik pas bij het opmaken vullen. Momenteel kijk ik welke formulier als laatste geopend is en ga ervan uit dat dit formulier het rapport aangeroepen heeft. Niet helemaal de correcte manier dus. Iemand suggesties?
De volgende code plaats ik bij event onClick:
code:
1
| =afdrukken("rapport";"rapportnaam";"bedrijfstak";"beeld of afdrukken") |
Dit roept de volgende code aan.
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
| Function afdrukken(strObjectType, strObjectName, Company, View As Boolean) As Boolean
'strObjectType = Rapport of Formulier
'strObjectName = Naam van het rapport of formulier
'Company = CSI of INNO
'View = Ja(afdrukvoorbeeld), Nee(afdrukken)
Dim ObjectExists As Boolean
Dim db As Database
Dim frm As Form
Dim rpt As Report
Dim i As Integer
Set db = CurrentDb()
If strObjectType = "Formulier" Then
strObjectType2 = "Form"
ElseIf strObjectType = "Rapport" Then
strObjectType2 = "Report"
Else
MsgBox "Alleen afdrukken van 'Rapport' en 'Formulier' zijn mogelijk!"
Exit Function
End If
ObjectExists = False
If strObjectType2 = "Form" Or strObjectType2 = "Report" Then
For i = 0 To db.Containers(strObjectType2 & "s").Documents.Count - 1
If db.Containers(strObjectType2 & "s").Documents(i).Name = strObjectName Then
ObjectExists = True
Exit For
End If
Next i
If ObjectExists Then
If strObjectType = "Rapport" Then
If View = True Then ViewType = acViewPreview Else ViewType = acViewNormal
BedrijfsTak = Company
Rapport = strObjectName
DoCmd.OpenReport strObjectName, ViewType
ElseIf strObjectType = "Formulier" Then
If View = True Then ViewType = acPreview Else ViewType = acNormal
DoCmd.OpenForm strObjectName, ViewType
End If
Else
MsgBox strObjectType & " '" & strObjectName & "'" & " bestaat niet!"
End If
End If
End Function |
Op het rapport moet de klantnaam in de kop komen te staan die uit het formulier gehaald word. Nou zou ik dus graag willen kunnen achterhalen door welk formulier bovenstaande code aangeroepen werd. De klantnaam op het rapport wil ik pas bij het opmaken vullen. Momenteel kijk ik welke formulier als laatste geopend is en ga ervan uit dat dit formulier het rapport aangeroepen heeft. Niet helemaal de correcte manier dus. Iemand suggesties?