Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag allemaal,

ik heb een probleempje met een access bestand, welke ooit gemaakt door een stagiaire. Ik kan een beetje programmeren maar ben geen vb pro helaas.

dit bestand kan door middel van een product te selecteren, 3 bijbehorende documenten uitprinten.
een compositieblad, een blindschema en een bewerkingsvoorschrift. Bij de eerste en de derde komen deze uit de standaard printer. (welke als standaard ingesteld is dus). Maar bij blindschema komt deze uit een andere printer.

er is een knop welke een PRINT functie (of procedure noemen ze dat?) aanroept.

ik kan hierin geen verschil vinden of iets wat mij duidelijk maakt naar welke printer de data moet gaan.

de print word volgens mij uitgevoerd door: DoCmd.OpenReport "NAAM VAN REPORT", acViewNormal

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
Private Sub PRINT_Click()

Dim con As New ADODB.Connection
Dim rstRapport As New ADODB.Recordset

Set con = CurrentProject.Connection

If IsNull([Type_ID]) Then
    
    MsgBox "Selecteer een type!"
    [Type_ID].SetFocus

Else
    
    If [Compositieblad] = 0 And [Blindschema] = 0 And [Bewerkingsvoorschrift] = 0 Then
    
        MsgBox "De aantallen van alle drie de documenten staan op nul (0), er worden dan ook geen documenten geprint. Om documenten te printen dient u bij een van de drie documenten tenminste een 1 of hoger in te vullen.", , "PRINT DOCUMENTEN FOUT!"
    
    Else
    
        ' Controleer allereerst of het veld COMPOSITIEBLAD
        ' een waarde die hoger is als nul (0), want als dit niet het geval is
        ' dan hoeft dit document ook niet te worden uitgeprint
        
        If [Compositieblad] > 0 Then
        
            ' Optie staat aangevinkt en het document kan dan ook
            ' worden geprint.
            
            For i = 1 To [Compositieblad]
            
                DoCmd.OpenReport "COMPOSITIEBLAD", acViewNormal
            
            Next
        
        End If
        
        ' Controleer allereerst of het veld BLINDSCHEMA
        ' een waarde heeft die hoger dan nul (0) heeft, want als dit niet het geval is
        ' dan hoeft dit document ook niet te worden uitgeprint
        
        If [Blindschema] > 0 Then
        
            Dim rsBS As New ADODB.Recordset
            rsBS.Open "SELECT * FROM PRINTEN_DOCUMENTEN WHERE PRINTEN_DOCUMENTEN.Type_ID='" & [Type_ID] & "'", con, adOpenStatic, adLockPessimistic
    
            Dim aantal As Integer
            Dim teller As Integer
            
            aantal = 0
            teller = 0
            
            aantal = rsBS.RecordCount
                  
            For teller = 1 To aantal
                                       
                ' Print de documenten die behoren bij de gekozen type
                ' en de juiste aantallen
                
                For i = 1 To [Blindschema]
                    
                    DoCmd.OpenReport rsBS!Rapport, acViewNormal
                    
                Next
                
                rsBS.MoveNext
                                                    
            Next
            
            teller = 0
            aantal = 0
        
        End If
        
        ' Controleer allereerst of het veld BEWERKINGSVOORSCHRIFT
        ' een waarde heeft die hoger als nul (0) is, want als dit niet het geval is
        ' dan hoeft dit document ook niet te worden uitgeprint
        
        If [Bewerkingsvoorschrift] > 0 Then
        
            Dim rsBV As New ADODB.Recordset
            Dim strBV As String
            Dim aantalBV As Integer
            
            rsBV.Open "SELECT * FROM PRODUCTIEVOORSCHRIFT WHERE TYPE_ID='" & [Type_ID] & "'", con, adOpenStatic, adLockPessimistic
    
            aantalBV = rsBV.RecordCount
            
            If aantalBV <> 0 Then
                
                ' Print de documenten die behoren bij de gekozen type
                ' en print de juiste aantallen
                
                For i = 1 To [Bewerkingsvoorschrift]
                
                    DoCmd.OpenReport "Bewerkingsvoorschrift", acViewNormal
                       
                Next
                       
            End If
            
            ' zet de variabelen op nul
            aantalBV = 0
            
            ' sluit het recordset rsBV
            rsBV.Close
        
        End If
        
        ' geef de gebruiker/operator een melding dat de document succesvol zijn geprint
        ' en geef ook aan welk document geprint is.
        
        Dim strPrintDocu As String
        Dim intPrintDocu As Integer
        
        intPrintDocu = 0
        
        If [Compositieblad] > 0 Then
            strPrintDocu = "Compositieblad"
            intPrintDocu = 1
        End If
                
        If [Blindschema] > 0 Then
            If intPrintDocu = 0 Then
                strPrintDocu = "Blindschema"
                intPrintDocu = 1
            Else
                strPrintDocu = strPrintDocu & " & Blindschema"
                intPrintDocu = 2
            End If
        End If
    
        If [Bewerkingsvoorschrift] > 0 Then
            If intPrintDocu = 0 Then
                strPrintDocu = "Bewerkingsvoorschrift"
                intPrintDocu = 1
            Else
                strPrintDocu = strPrintDocu & " & Bewerkingsvoorschrift"
                intPrintDocu = 2
            End If
        End If
            
        If intPrintDocu = 1 Then
        
            MsgBox "Het document (" & strPrintDocu & ") is geprint."
        
        End If
        
        If intPrintDocu > 1 Then
        
            MsgBox "De volgende documenten (" & strPrintDocu & ") zijn geprint."
        
        End If
    
    End If
    
End If

End Sub


Waar kan ik verder nog kijken?

ik heb al gezocht op de printernaam / ip van de afwijkende printer in het gehele script, deze is niet te vinden. Ook heb ik desbetreffende printer niet eens geinstalleerd.

schiet mij maar lek....

Welke VB / Access Held kan mij helpen?

Acties:
  • 0 Henk 'm!

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 29-07 11:23
Je moet het bewuste rapport ontwerpen, dan bij paginainstelling de standaardprinter instellen (zal nu op 'specifieke printer' staan) en het rapport ten slotte opslaan. Klaar!

[ Voor 12% gewijzigd door Witte op 02-08-2011 14:07 ]

Houdoe