In principe kun je met MS-Access prima een multi-user applicatie maken. Uit eigen ervaring heb ik wel eens een access voorkant met een SQL Server achterkant met 50 concurrent (gelijktijdige) gebruikers. Je kunt ipv SQL Server als achterkant ook een MDB koppelen die op het netwerk staat, met daarin alleen tabellen. Je maakt dan een MDB met alleen queries, schermen, rapporten en modules en een aparte MDB met alleen tabellen.
De foutmelding die ontstaat in het stuk code wordt naar alle waarschijnlijkheid veroorzaakt doordat je wilt zoeken op een knop (Knop 9) doordat je op de Zoeken knop hebt geklikt. Deze probeert de focus op het vorige veld te zetten (Screen.PreviousControl.SetFocus)
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
| Private Sub Zoeken_Click()
On Error GoTo Err_Zoeken_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Zoeken_Click:
Exit Sub
Err_Zoeken_Click:
MsgBox Err.Description
Resume Exit_Zoeken_Click
End Sub
Private Sub Knop9_Click()
On Error GoTo Err_Knop9_Click
DoCmd.GoToRecord , , acNext
Exit_Knop9_Click:
Exit Sub
Err_Knop9_Click:
MsgBox Err.Description
Resume Exit_Knop9_Click
End Sub |
Je kan een aantal dingen doen:
Of je zorgt er voor dat je "Screen.PreviousControl.SetFocus" weghaalt
Of je zorgt er voor dat er een nette foutafhandeling plaats vindt (ipv MsgBox Err.Description)
Of je zorgt er voor dat je geen navigatie doet met "zelf gemaakte knoppen", maar gebruikt de standaard navigatie-knoppen bij het formulier
Of je zorgt er voor dat de knop uitgeschakeld wordt indien je het laatste record hebt geopend (zal ook via code moeten).