Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB in Access] If... Then

Pagina: 1
Acties:

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
Ik heb een stukje geprogameerd maar aangezien er in de help het volgende staat: "Als voorwaarde Null is, wordt voorwaarde behandeld als zijnde False." Nu weet ik wel dat die help file niet heel erg betrouwbaar is, maar ik neem aan dat dit wel klopt :P.

Wat is nu het probleem. Ik wil dat als de voorwaarde Null is, dat de voorwaarde wordt behandeld als zijnde True!!! En als dat niet gaat, hoe zorg ik dan dat ik zonder teveel code meer tot een oplossing kom?

Ik heb nu:
If [voorwaarde < 1] Then [instructies1]
instructies2
En heb ook geprobeerd:
If NOT [voorwaarde > 0] Then [instructies1]
instructies2

Maar ik wil GEEN:
If [voorwaarde < 0] Then
[instructies2]
Else
[instructies1]
End If

Omdat ik nml 40 If's heb, krijg ik dan ontzettend veel code erbij. Een ander optie als If is er trouwens niet (geen Select case ofzow).

Thx Ocke

  • Boss
  • Registratie: September 1999
  • Laatst online: 14:23

Boss

+1 Overgewaardeerd

Wat is je probleem nou? 'voorwaarde' is een variabele en als die Null (leeg) is, gaat het mis? Dan kan je toch met de functie Nz (zie help) bepalen hoe er omgegaan moet worden met die Null waarde?

Of snap ik het nou niet?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

ik begrijp ook niet echt wat je bedoelt gaat het nu over 0 of Null ?

Als het over null (leeg dus gaat) moet je doen IF isnull(x) en niet x = null

Verwijderd

wees idd ff duidelijk.... wat wil je?

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
ik zit nou thuis dus ik kan nu niet ff kijken wat dat nz precies doet. Ik post het morgen wel ff wat meer. Maar als ik het zo zie denk ik dat ik wat aan de tip van Kazan heb :)

tot morge :)

Verwijderd

Ik denk dat ik begrijp wat je bedoeld. Je kan namelijk ook in de If..Then als criteria opgeven dat iets leeg kan zijn. Ik doe het altijd op de volgende manier:

If Voorwaarde <> "" then DoeInstructie1

Misschien is dit wat je zocht?

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
Het zit als volgt:

Ik heb een tabel die ingevuld wordt door de werknemers hier. Ze moeten de datum, tijd in minuten, werkzaamheden invullen. Ze kan de baas hier zien hoeveel tijd er bv aan een bepaalde werkzaamheid besteed is.

Nu heb ik een formuliertje gemaakt (Bekijk_Werkuren), waar de baas alles netjes kan zien. Er zijn 7 keuzelijst opties (oftewel pull-down menutjes): Jaar, datum, weeknummer, maand, persoon, project, offerte. Allemaal worden ze gevuld met een sql commando (select distinct ...order by...). Je kan dan bv maand kiezen kiezen. Jij klik op die pijl naar beneden, hij kijk ff die tabel door (dat sql commando wat eraan vast zit), en zorgt dat jij netjes alle beschikbare maanden te zien krijgt.

Nu heb ik een After_update geprogameerd voor elk pull-down menutje. Bij maand, doe ie bv:

Visual Basic:
1
2
3
4
5
6
Private Sub Keuzelijst_Maand_AfterUpdate()
  Keuzelijst_Dag = ""
  Keuzelijst_Week = ""
  Schoon (2)
  Bereken
End Sub


Die bereken = (heel veel code, ik laat hier een gestripte versie zien):

Visual Basic:
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
Private Function Bereken()
  Dim choose As String
  
'Bereken choose
  choose = ""
  If Keuzelijst_Dag <> "" Then choose = "d"
  If Keuzelijst_Week <> "" Then choose = choose & "w"
  If Keuzelijst_maand <> "" Then choose = choose & "m"
  If Keuzelijst_Persoon <> "" Then choose = choose & "p"
  If Keuzelijst_Project <> "" Then choose = choose & "r"
  If Keuzelijst_Offerte <> "" Then choose = choose & "f"
    
Select Case choose

Case "m"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
    Case "mp"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
    Case "mr"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project"))
    Case "mf"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte"))
    Case "mpr"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project"))
    Case "mpf"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte"))


Jullie hebben mischien iets van WOW wat een if's.. als het makkelijker kan, ik sta open voor idee'en :)

MAar goed.. verder: hij maakt dag (=datum) en week (=weeknummer) ff leeg, start een functie van mij die de andere velden ook leeg maakt, en gooit er dan een berkening tegen aan.

Er zijn nml nog 4 tekstvakjes: Totaal, persoon, project, offerte. Als jij ALLEEN een maand selecteert, moet ie het totaal aantal uren laten zien van die maand. Selecteer jij ook nog een persoon, dan vult ie het tekstvakje persoon ook nog eens in door te laten wat die persoon in die maand gewerkt heeft (totaal blijft natuurlijk gewoon staan).

En dat alles doet ie gewoon netjes.. MAAR als jij een combinatie selecteert die als waarde null (dus nix) heeft, dan BHAM foutmelding, want ik mag geen mintohour(null) blijkbaar doen. Mintohour is btrw ook een zelf geschreven funtie die min omrekent naar uren :)

Daarom al die if's die eerst moeten controleren of er geen null uit dsum(..) komt. Als dat nml het geval is, moet ie de rest niet uitvoeren.

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

ocke schreef op 29 augustus 2002 @ 08:10:
Ik heb een tabel die ingevuld wordt door de werknemers hier. Ze moeten de datum, tijd in minuten, werkzaamheden invullen. Ze kan de baas hier zien hoeveel tijd er bv aan een bepaalde werkzaamheid besteed is.
Soort van Timesheet (Urenschrijf) programmaatjes dus :P
Nu heb ik een formuliertje gemaakt (Bekijk_Werkuren), waar de baas alles netjes kan zien. Er zijn 7 keuzelijst opties (oftewel pull-down menutjes): Jaar, datum, weeknummer, maand, persoon, project, offerte. Allemaal worden ze gevuld met een sql commando (select distinct ...order by...). Je kan dan bv maand kiezen kiezen. Jij klik op die pijl naar beneden, hij kijk ff die tabel door (dat sql commando wat eraan vast zit), en zorgt dat jij netjes alle beschikbare maanden te zien krijgt.
Je bedoel dus gewoon een combobox die de waarden voor deze lijst uit een andere tabel o.i.d. haalt :?
Nu heb ik een After_update geprogameerd voor elk pull-down menutje. Bij maand, doe ie bv:
Visual Basic:
1
2
3
4
5
6
Private Sub Keuzelijst_Maand_AfterUpdate()
  Keuzelijst_Dag = ""
  Keuzelijst_Week = ""
  Schoon (2)
  Bereken
End Sub


Die bereken = (heel veel code, ik laat hier een gestripte versie zien):

Visual Basic:
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
Private Function Bereken()
  Dim choose As String
  
'Bereken choose
  choose = ""
  If Keuzelijst_Dag <> "" Then choose = "d"
  If Keuzelijst_Week <> "" Then choose = choose & "w"
  If Keuzelijst_maand <> "" Then choose = choose & "m"
  If Keuzelijst_Persoon <> "" Then choose = choose & "p"
  If Keuzelijst_Project <> "" Then choose = choose & "r"
  If Keuzelijst_Offerte <> "" Then choose = choose & "f"
    
Select Case choose

Case "m"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
    Case "mp"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
    Case "mr"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project"))
    Case "mf"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte"))
    Case "mpr"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project"))
    Case "mpf"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte"))


Jullie hebben mischien iets van WOW wat een if's.. als het makkelijker kan, ik sta open voor idee'en :)
Daar zie ik te weinig van je code van, maar ik kan zeggen dat Goto bij mij ten strengste verboden is. De enige Goto die ik toesta is: On Error Goto, maar goed ik ben niet degene (jij wel) die de code heeft geschreven.
MAar goed.. verder: hij maakt dag (=datum) en week (=weeknummer) ff leeg, start een functie van mij die de andere velden ook leeg maakt, en gooit er dan een berkening tegen aan.

Er zijn nml nog 4 tekstvakjes: Totaal, persoon, project, offerte. Als jij ALLEEN een maand selecteert, moet ie het totaal aantal uren laten zien van die maand. Selecteer jij ook nog een persoon, dan vult ie het tekstvakje persoon ook nog eens in door te laten wat die persoon in die maand gewerkt heeft (totaal blijft natuurlijk gewoon staan).

En dat alles doet ie gewoon netjes.. MAAR als jij een combinatie selecteert die als waarde null (dus nix) heeft, dan BHAM foutmelding, want ik mag geen mintohour(null) blijkbaar doen. Mintohour is btrw ook een zelf geschreven funtie die min omrekent naar uren :)

Daarom al die if's die eerst moeten controleren of er geen null uit dsum(..) komt. Als dat nml het geval is, moet ie de rest niet uitvoeren.
Maar ehm, wat is nou je probleem??? Als ik het goed begrijp wil jij weten of een voorwaarde NULL is en als dat het geval is moet jij TRUE terug krijgen :? :?

Kan je dat dan niet gewoon doen door gebruik te maken van:
Visual Basic:
1
IsNull()
PS: zet a.u.b. in het vervolg je code tussen de code ([CODE]) tags, dat maakt het namelijk een stuk eenvoudiger. Voor de advanced [CODE] zie hier.

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 21-11 13:44

Sponge

Serious Game Developer

"Tijd", "werkuren"

^ Vervang die twee door een variabele. Elke keer word zo een string expliciet gecompiled in de exe, en dit loopt aardig op bij je :)

Len() ipv. <> ""

Volgens mij zie ik trouwens regelmatig dezelfde code?

Goto's.. die.. wil je liever niet gebruiken :)

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
Woudloper schreef op 29 augustus 2002 @ 08:30:
Je bedoel dus gewoon een combobox die de waarden voor deze lijst uit een andere tabel o.i.d. haalt :?
Jah. Maar niet uit een andere tabel, maar gewoon uit dezelfde tabel
Daar zie ik te weinig van je code van, maar ik kan zeggen dat Goto bij mij ten strengste verboden is. De enige Goto die ik toesta is: On Error Goto, maar goed ik ben niet degene (jij wel) die de code heeft geschreven.
Euh tjah, maar hoe moet ik het dan doen dat ie het niet uitvoert als die if true is?
Maar ehm, wat is nou je probleem??? Als ik het goed begrijp wil jij weten of een voorwaarde NULL is en als dat het geval is moet jij TRUE terug krijgen :? :?
JAH :)

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
Complete 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
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
Option Compare Database
Option Explicit

Private Function Schoon(Soort As Integer)
  If Soort = 1 Then
    Keuzelijst_Dag = ""
    Keuzelijst_Week = ""
    Keuzelijst_maand = ""
    Keuzelijst_Persoon = ""
    Keuzelijst_Project = ""
    Keuzelijst_Offerte = ""
    Persoon_Bijschrift.Caption = "Persoon"
    Project_Bijschrift.Caption = "Project"
    Offerte_Bijschrift.Caption = "Offerte"
    Totaal = ""
    Persoon = ""
    Project = ""
    Offerte = ""
    Kader35 = 1
  End If
  If Soort = 2 Then
    Persoon_Bijschrift.Caption = "Persoon"
    Project_Bijschrift.Caption = "Project"
    Offerte_Bijschrift.Caption = "Offerte"
    Totaal = ""
    Persoon = ""
    Project = ""
    Offerte = ""
  End If
End Function

Private Function Bereken()
  Dim choose As String
  
  'Bereken choose
  choose = ""
  If Keuzelijst_Dag <> "" Then choose = "d"
  If Keuzelijst_Week <> "" Then choose = choose & "w"
  If Keuzelijst_maand <> "" Then choose = choose & "m"
  If Keuzelijst_Persoon <> "" Then choose = choose & "p"
  If Keuzelijst_Project <> "" Then choose = choose & "r"
  If Keuzelijst_Offerte <> "" Then choose = choose & "f"
    
  Totaal = "00:00"
  Persoon = "00:00"
  Project = "00:00"
  Offerte = "00:00"
  
  Select Case choose
    Case "d"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
    Case "dp"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
    Case "dr"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project"))
    Case "df"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte"))
    Case "dpr"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project"))
    Case "dpf"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte"))

w:
    Case "w"
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week"))
    Case "wp"
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon"))
    Case "wr"
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Project = Keuzelijst_Project") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Project = Keuzelijst_Project"))
    Case "wf"
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Offerte = Keuzelijst_Offerte"))
    Case "wpr"
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project"))
    Case "wpf"
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Week = Keuzelijst_week AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte"))

M:
    Case "m"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
    Case "mp"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
    Case "mr"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project"))
    Case "mf"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte"))
    Case "mpr"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Project = Keuzelijst_Project") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project"))
    Case "mpf"
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      If Not DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Maand = Keuzelijst_maand AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte"))

p:
    Case "p"
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo r
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon"))
    Case "pr"
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo r
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo r
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "maand = Keuzelijst_maand"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon AND project = Keuzelijst_Project"))
    Case "pf"
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo r
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo r
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo p
      Totaal = MintoHour(DSum("Tijd", "werkuren", "maand = Keuzelijst_maand"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon AND offerte = Keuzelijst_offerte"))
    
r:
    Case "r"
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo f
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Project = Keuzelijst_Project"))
    
f:
    Case "f"
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo down
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte"))

down:
  End Select
End Function

Public Sub Form_Load()
  Schoon (1)
End Sub

Private Sub Jaar_AfterUpdate()
  Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Datum"))
End Sub

Private Sub Keuzelijst_Dag_AfterUpdate()
  Keuzelijst_Week = ""
  Keuzelijst_maand = ""
  Schoon (2)
  Bereken
End Sub

Private Sub Keuzelijst_week_AfterUpdate()
  Keuzelijst_Dag = ""
  Keuzelijst_maand = ""
  Schoon (2)
  Bereken
End Sub

Private Sub Keuzelijst_Maand_AfterUpdate()
  Keuzelijst_Dag = ""
  Keuzelijst_Week = ""
  Schoon (2)
  Bereken
End Sub

Private Sub Keuzelijst_Persoon_AfterUpdate()
  Schoon (2)
  Bereken
End Sub

Private Sub Keuzelijst_Project_AfterUpdate()
  Keuzelijst_Offerte = ""
  Schoon (2)
  Bereken
End Sub

Private Sub Keuzelijst_Offerte_AfterUpdate()
  Keuzelijst_Project = ""
  Schoon (2)
  Bereken
End Sub

Private Sub Clear_Click()
  Schoon (1)
End Sub

Private Sub Sel_Totaal_GotFocus()
  Grafiek.RowSource = Totaal
End Sub

Private Sub Sel_Persoon_GotFocus()
  Grafiek.RowSource = "SELECT "",Sum(Tijd) AS SomVanTijd FROM werkuren;"
End Sub

Private Sub Sel_Project_GotFocus()
  Grafiek.RowSource = "SELECT "",Sum(Tijd) AS SomVanTijd FROM werkuren;"
End Sub

Private Sub Sel_Offerte_GotFocus()
  Grafiek.RowSource = "SELECT "",Sum(Tijd) AS SomVanTijd FROM werkuren;"
End Sub
Private Sub Exit_Click()
  On Error GoTo Err_Exit_Click
  DoCmd.Close
Exit_Exit_Click:
  Exit Sub
Err_Exit_Click:
  If MsgBox("Fout in de gegevens gevonden!@Wilt u alsnog het Urenformulier afsluiten?", 20, "Fout bij afsluiten") = vbYes Then DoCmd.Close
End Sub

[ Voor 0% gewijzigd door crisp op 10-08-2007 13:59 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Ik zie trouwens dat je heel veel van de if-jes herhaald, kan je die niet al als check buiten je Select Case zetten, want dat scheelt een heleboel herhalingen....

Maar werkt IsNull() niet :? Ik weet niet of je deze link kent over MS Access (http://www.mvps.org/access), want daar heb ik in het verleden weleens wat aangehad....

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
Hij doet het :P.. ik heb ISNull() gebruikt, en alels werkt nu 100 %. Er zaten nog een paar kleine foutjes in, maar dat is ook verholpen nu. THX iedereen :)

Een slotje kan erop (als een mod dan nodig vind)

Thx ocke (en ook namens hele bedrijf :D).

Verwijderd

Ik zou hoe dan ook van de Goto's afstappen... Ik heb zo even de code door gelezen en ik zie veel van het zelfde terug... Het kan allemaal veel korter...

Ik zou een procedure maken met een variabele opzet en parameters die je aan de procedure mee kan geven.

Even een voor beeld...

Dit was 't:

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
  Select Case choose
    Case "d"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
    Case "dp"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
    Case "dr"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project"))
    Case "df"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte"))
    Case "dpr"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
      Project = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Project = Keuzelijst_Project"))
    Case "dpf"
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
      Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
      Offerte = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon AND Offerte = Keuzelijst_Offerte"))

De volgende 2 regels komen in elke Case terug:
code:
1
2
      If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then GoTo w
      Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))

Hier zou ik mooi gebruik van maken om een routine te maken waar alles maar 1 keer in voor komt...

Ik zou er zo iets van maken:

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
Sub <PlaatsHierEenToepasselijkeNaam>(choose_new)
Dim i as Integer, Check as String
Dim d_Enabled as boolean, p_Enabled as boolean, r_Enabled as boolean, f_Enabled as boolean

d_Enabled = false
p_Enabled = false
r_Enabled = false
f_Enabled = false


for i = 1 to len(choose_new)
    Check = mid(choose_new,i,1)
    If Check = "d" then d_Enabled = true
    If Check = "p" then p_Enabled = true
    If Check = "r" then r_Enabled = true
    If Check = "f" then f_Enabled = true
Next i

    if d_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then <NaamVanVolgendeProcedure>
    if p_enabled = true then If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then <NaamVanVolgendeProcedure>
    if p_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then <NaamVanVolgendeProcedure>
    if r_enabled = true then If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then <NaamVanVolgendeProcedure>
    if r_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project") > 0 Then <NaamVanVolgendeProcedure>
    if f_enabled = true then If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then <NaamVanVolgendeProcedure>
    if f_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte") > 0 Then <NaamVanVolgendeProcedure>
    if d_enabled = true then Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
    if p_enabled = true then Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
    if r_enabled = true then Project = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project"))
    if f_enabled = true then Offerte = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte"))
End Sub

...

In de procedure waar eerst het hele Case verhaal staat kan dan vervangen worden dmv:

code:
1
<PlaatsHierEenToepasselijkeNaam>(choose)


Het zelfde geld dan ook voor de andere Cases (W, V, enz) de Goto naar verwijst... Ik zeg er eerlijk bij dat ik 'm nog niet heb getest, maar volgens mij klopt hij aardig zo... ;)

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
hey man.. Kijk daar heb ik nog eens wat aan :). Thx man. Ik zit nu thuis, maar maandag kijk ik gelijk of dit zou werken. Nu moet ik wil zeggen dat de code die het doet wel ietsje anders is dan dat ik hier gepost heb, maar veel verschil zal er niet in zitten.

Maandag post ik me resultaat

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 15-09-2024
Verwijderd schreef op 29 augustus 2002 @ 19:34:
Visual Basic:
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
Sub <PlaatsHierEenToepasselijkeNaam>(choose_new)
Dim i as Integer, Check as String
Dim d_Enabled as boolean, p_Enabled as boolean, r_Enabled as boolean, f_Enabled as boolean

d_Enabled = false
p_Enabled = false
r_Enabled = false
f_Enabled = false


for i = 1 to len(choose_new)
    Check = mid(choose_new,i,1)
    If Check = "d" then d_Enabled = true
    If Check = "p" then p_Enabled = true
    If Check = "r" then r_Enabled = true
    If Check = "f" then f_Enabled = true
Next i

    if d_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag") > 0 Then <NaamVanVolgendeProcedure>
    if p_enabled = true then If Not DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon") > 0 Then <NaamVanVolgendeProcedure>
    if p_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon") > 0 Then <NaamVanVolgendeProcedure>
    if r_enabled = true then If Not DSum("Tijd", "werkuren", "Project = Keuzelijst_Project") > 0 Then <NaamVanVolgendeProcedure>
    if r_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project") > 0 Then <NaamVanVolgendeProcedure>
    if f_enabled = true then If Not DSum("Tijd", "werkuren", "Offerte = Keuzelijst_Offerte") > 0 Then <NaamVanVolgendeProcedure>
    if f_enabled = true then If Not DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte") > 0 Then <NaamVanVolgendeProcedure>
    if d_enabled = true then Totaal = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag"))
    if p_enabled = true then Persoon = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Persoon = Keuzelijst_Persoon"))
    if r_enabled = true then Project = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Project = Keuzelijst_Project"))
    if f_enabled = true then Offerte = MintoHour(DSum("Tijd", "werkuren", "Datum = Keuzelijst_dag AND Offerte = Keuzelijst_Offerte"))
End Sub
Tjah opzich was ie wel aardig. Maar na ff kijken bleek ie toch wel iets te simpel. Bij jouw kun je maar 1 ding tergerlijkertijd doen. En dat moest natuurlijk niet. Je kan nml ook combinaties van verschillende onderdelen doen. En om dat te bereiken heb ik dit goed werkende stukje code inmekaar geknutseld:

Visual Basic:
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
Private Function Bereken()
  Dim t As String, rf As String
  Dim p_Enabled As Boolean
  
  'Waardes instellen
  Totaal = "00:00"
  Persoon = "00:00"
  Project = "00:00"
  Offerte = "00:00"
  t = "not"
  rf = "not"
  p_Enabled = False
  
  'Kijken of wat is ingevuld
  If Keuzelijst_Dag <> "" Then t = "dag"
  If Keuzelijst_Week <> "" Then t = "week"
  If Keuzelijst_maand <> "" Then t = "maand"
  If Keuzelijst_Persoon <> "" Then p_Enabled = True
  If Keuzelijst_Project <> "" Then rf = "Project"
  If Keuzelijst_Offerte <> "" Then rf = "Offerte"
  
  'Dag, week of maand ingevoerd
  If t <> "not" Then If IsNull(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t)) Then t = "not"
  If t <> "not" Then Totaal = MintoHour(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t))
    
  'Dag,week of maand ingevuld samen met een persoon, project of offerte
  If t <> "not" And p_Enabled = True Then If IsNull(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t & " AND Persoon = Keuzelijst_Persoon")) Then p_Enabled = False
  If t <> "not" And p_Enabled = True Then Persoon = MintoHour(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t & " AND Persoon = Keuzelijst_Persoon"))
  If t <> "not" And rf <> "not" Then If IsNull(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t & " AND " & rf & " = Keuzelijst_" & rf)) Then rf = "not"
  If t <> "not" And rf <> "not" Then Project = MintoHour(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t & " AND " & rf & " = Keuzelijst_" & rf))
    
  'Dag,week of maand ingevuld samen met een persoon en een project, of offerte
  If t <> "not" And p_Enabled = True And rf <> "not" Then If IsNull(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t & " AND Persoon=Keuzelijst_persoon AND " & rf & " = Keuzelijst_" & rf)) Then rf = "not"
  If t <> "not" And p_Enabled = True And rf <> "not" Then Project = MintoHour(DSum("Tijd", "werkuren", t & " = Keuzelijst_" & t & " AND Persoon=Keuzelijst_persoon AND " & rf & " = Keuzelijst_" & rf))
    
  'Alleen een persoon, offerte of offerte ingevuld
  If p_Enabled = True And t = "not" And rf = "not" Then If IsNull(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon")) Then p_Enabled = False
  If p_Enabled = True And t = "not" And rf = "not" Then Persoon = MintoHour(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon"))
  If rf <> "not" And t = "not" Then If IsNull(DSum("Tijd", "werkuren", rf & " = Keuzelijst_" & rf)) > 0 Then rf = "not"
  If rf <> "not" And t = "not" Then Project = MintoHour(DSum("Tijd", "werkuren", rf & " = Keuzelijst_" & rf))
  
  'Een persoon ingevuld samen met een project of offerte
  If p_Enabled = True And t = "not" And rf = "not" Then If IsNull(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon AND rf " & " = Keuzelijst_" & rf)) Then p_Enabled = False
  If p_Enabled = True And t = "not" And rf = "not" Then Project = MintoHour(DSum("Tijd", "werkuren", "Persoon = Keuzelijst_Persoon AND rf " & " = Keuzelijst_" & rf))
End Function


Dat was ff voor de belangstellende. Harstikke bedankt Shlizar want ik had deze code niet gehad zonder jouw hulp.

Thx ocke
Pagina: 1