[Access + VBA] keuzevakken koppelen

Pagina: 1
Acties:

  • Carpenter
  • Registratie: December 2002
  • Laatst online: 14:24
Beste mensen,

Ik ben nog steeds bezig voor stage om een "applicatie" te bouwen in Access. Deze applicatie is bedoeld om bevindingen te registreren tijdens het testen van software. Nou ben ik bezig met een soort beheermodule waarin per "release" een project aangemaakt kan worden. Nou wilde ik dit doen door 2 keuzevakken; in het eerste keuzevak staan bijv. de medewerkers, statussen, testscenario's etc. Als je hier iets aanklikt dan worden er in het andere keuzevak waarden ingelezen via een query. Ik heb hiervoor de volgende code:
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
56
57
58
59
60
61
62
63
64
65
66
Private Sub txt_onderdelen_release_AfterUpdate()

    Dim rstRelease
    Dim release As TextBox
    Dim onderdeel, subonderdeel As Control

    Set release = txt_release_id
    Set onderdeel = txt_onderdelen_release
    Set subonderdeel = txt_sub_onderdeel_release
    
    If (onderdeel = 1) And (release <> 1) Then
        rstRelease = "SELECT tbl_systeemversie.systeemversie_id, [tbl_systeem]![systeem_naam]+' '+[tbl_systeemversie]![systeemversie_nummer] AS systeem_naam " & _
                      "FROM tbl_systeem INNER JOIN (tbl_release INNER JOIN tbl_systeemversie ON tbl_release.release_id = tbl_systeemversie.release_id) ON " & _
              "tbl_systeem.systeem_id = tbl_systeemversie.systeem_id WHERE (((tbl_release.release_id)=[txt_release_id]));"
    
        subonderdeel.RowSource = rstRelease
        subonderdeel.ColumnCount = 2
        subonderdeel.ColumnWidths = "0cm;6cm"
        subonderdeel.requery
    ElseIf (onderdeel = 2) Then
        rstRelease = "SELECT tbl_medewerker_profiel.medewerker_profiel_id, tbl_medewerker_profiel.medewerker_profiel_naam " & _
                     "FROM tbl_release INNER JOIN tbl_medewerker_profiel ON tbl_release.release_id = tbl_medewerker_profiel.release_id " & _
                     "WHERE (((tbl_release.release_id)=[txt_release_id]));"
        subonderdeel.RowSource = rstRelease
        subonderdeel.ColumnCount = 2
        subonderdeel.ColumnWidths = "0cm;6cm"
        subonderdeel.requery
    ElseIf (onderdeel = 3) And (release <> 1) Then
        rstRelease = "SELECT tbl_status.status_id, tbl_status.status_naam " & _
                     "FROM tbl_status INNER JOIN (tbl_release INNER JOIN tbl_status_release ON tbl_release.release_id = tbl_status_release.release_id) ON " & _
             "tbl_status.status_id = tbl_status_release.status_id WHERE (((tbl_release.release_id)=[txt_release_id]));"
                     
        subonderdeel.RowSource = rstRelease
        subonderdeel.ColumnCount = 2
        subonderdeel.ColumnWidths = "0cm;6cm"
        subonderdeel.requery
    ElseIf (onderdeel = 4) And (release <> 1) Then
        rstRelease = "SELECT tbl_testtype.testtype_id, tbl_testtype.testtype_naam " & _
                     "FROM tbl_testtype INNER JOIN (tbl_release INNER JOIN tbl_testtype_release ON tbl_release.release_id = tbl_testtype_release.release_id) ON " & _
             "tbl_testtype.testtype_id = tbl_testtype_release.testtype_id WHERE (((tbl_release.release_id)=[txt_release_id]));"
                     
        subonderdeel.RowSource = rstRelease
        subonderdeel.ColumnCount = 2
        subonderdeel.ColumnWidths = "0cm;6cm"
        subonderdeel.requery
    ElseIf (onderdeel = 5) And (release <> 1) Then
        rstRelease = "SELECT tbl_testscenario.testscenario_id, tbl_testscenario.testscenario_code, tbl_testscenario.testscenario_omschrijving " & _
                     "FROM tbl_release INNER JOIN tbl_testscenario ON tbl_release.release_id = tbl_testscenario.release_id " & _
                     "WHERE (((tbl_release.release_id)=[txt_release_id]));"
                     
        subonderdeel.RowSource = rstRelease
        subonderdeel.ColumnCount = 3
        subonderdeel.ColumnWidths = "0cm;2cm;6cm"
        subonderdeel.requery
    ElseIf (onderdeel = 6) And (release <> 1) Then
        rstRelease = "SELECT tbl_change.change_id, tbl_change.change_req_nr, tbl_change.change_keten_req_nr, tbl_change.change_omschrijving " & _
                     "FROM tbl_release INNER JOIN tbl_change ON tbl_release.release_id = tbl_change.release_id " & _
                     "WHERE (((tbl_release.release_id)=[txt_release_id]));"
                     
        subonderdeel.RowSource = rstRelease
        subonderdeel.ColumnCount = 4
        subonderdeel.ColumnWidths = "0cm;1cm;1,5cm;10cm"
        subonderdeel.requery
    End If

End Sub


Bij de optie "Na bijwerken" van het eerste keuzevak wordt de bovenstaande code aangeroepen. Alleen nou heb ik het volgende probleem: alles doet het, behalve als ik op het eerste item in het eerste keuzevak klik dan gebeurt er niets en klik ik dan op een ander item dan krijg ik de melding "Update of CancelUpdate zonder AddNew of Edit". Dit gebeurt niet als ik het formulier opnieuw open en alle andere items als eerste aanklik.
Ik heb hiervoor ook al op internet en op GOT gekeken maar ik heb niets kunnen vinden en ik snap hier echt niets van 8)7. Wie kan mij hiermee helpen?

Carpenter

[ Voor 17% gewijzigd door Carpenter op 22-10-2003 09:10 ]


  • Carpenter
  • Registratie: December 2002
  • Laatst online: 14:24
Het topic mag wel dicht, de fout lag in een soort corrupt keuzevak. Ik heb het oude keuzevak verwijderd en er een nieuwe voor in de plaats gezet en hij doet het nu.