[access] requery keuzelijst

Pagina: 1
Acties:

  • Woef
  • Registratie: Juni 2000
  • Niet online
Ik heb de volgende keuzevelden.
Afbeeldingslocatie: http://www.rorupc.nl/school/users/Ruben%20Pruim/keuze.jpg
Als ik het formulier opstart met deze keuzevelden, en ik klik bij uitgang-1 aan positief, dan krijg ik doormiddel van de goede query de goede gegevens in uitgang-2. Alleen als ik dan uitgang-1 wil wijzigen, blijft uitgang-2 de resultaten weergeven van mijn eerste keuze. Ga ik een record verder, dan laat hij ook de resultaten zien van de eerst gekozen uitgang-1. Moet ik de variabel "uitgang-1" dan resetten ofzo? Zodat hij opnieuw geset kan worden?

  • Boss
  • Registratie: September 1999
  • Laatst online: 17:20

Boss

+1 Overgewaardeerd

Zijn dit keuzevelden in een doorlopend subformulier? Dat is erg lastig. Access kan nl niet per record in je subformulier een ander query in je keuzelijsten gebruiken.

Als het geen doorlopend subformulier is, dan zou ik gewoon na het aanpassen van uitgang 1 alle velden daarachter wissen. De keuzes die je daar maakt zijn toch immers afhankelijk van wat je bij uitgang 1 hebt ingevuld?

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.


  • Woef
  • Registratie: Juni 2000
  • Niet online
Nee het is geen doorlopend subformulier. Elk id heeft zo'n 3 van deze keuzevelden.
Het is de bedoeling dus dat die variabel $uitgang-2 zeg maar vernieuwd wordt. Dat heb ik dus gedaan met requery. Deze:
code:
1
2
3
Private Sub uitgang_2_BeforeUpdate(Cancel As Integer)
Me.[uitgang-2].Requery
End Sub

Verwijderd

Je moet After_update gebruiken bij uitgang1.
Dus zoiets:
code:
1
2
3
Private Sub uitgang_1_afterupdate(Cancel as Integer)
Me.uitgang_2.requery
end sub

Als je nu uitgang_1 veranderd wordt uitgang 2 automatisch opnieuw gequeried.

  • Woef
  • Registratie: Juni 2000
  • Niet online
code:
1
2
3
Private Sub uitgang1_afterupdate(Cancel As Integer)
Me.[uitgang-2].Requery
End Sub

dit heb ik er van gemaakt en dat werkt ook niet, ben bang dat ik iets fout doe met die streepjes die er tussen zitten
uitgang-1
uitgang-2
hoe defineer je die hierboven in?

Verwijderd

Als je ze tussen rechte haken zet dan kun je gewoon de exacte veld naam overnemen. In de VB-editor vult hij de namen als het goed is gewoon aan. Als je geen lijstje ziet met aanvullingen dan moet je ff CTRL-J drukken, daarmee krijg je een lijst te zien met opdrachten en veldnamen die op de plaats van je cursor gebruikt kunnen worden.

  • Woef
  • Registratie: Juni 2000
  • Niet online
Oke bedankt, dat werkt.
Alleen het probleem is dus dat hij bij de volgende record de invoer van uitgang-1 neemt die ik als eerste kies.

  • Boss
  • Registratie: September 1999
  • Laatst online: 17:20

Boss

+1 Overgewaardeerd

Dat is toch logisch? Je hebt immers niet opnieuw de rowsource aangepast en/of een requery gedaan. Ik zou die requery ook niet op het updaten van [uitgang-1] zetten maar bij het OnFocus van [uitgang-2]. Zo wordt er ook geen query gedaan als het niet nodig is.
Wat denk je van het volgende (beetje pseudo-code):
Visual Basic .NET:
1
2
3
4
5
6
7
Private Sub Uitgang-2OnFocus
  if nz([Uitgang-1]) = "" then
    [uitgang-2].RowSource = "SELECT * FROM SourceTabel"
  else
    [uitgang-2].RowSource = "SELECT * FROM SourceTabel WHERE ID = "  & id_van_uitgang_1
  end if
End Sub

[ Voor 11% gewijzigd door Boss op 26-08-2003 12:46 ]

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.

Pagina: 1