na formulier gegevens weg...

Status
Niet open voor verdere reacties.

Twomax

Gebruiker
Lid geworden
17 jan 2015
Berichten
113
Ik heb een formulier gebaseerd op query met twee veldnamen een is plaats en andere is straat.

Onder plaats is de volgende code gebruikt rijbron SELECT Plaats, PlaatsID FROM Plaats ORDER BY (Asc([Plaats])), Plaats.Plaats;

Code:
Private Sub plaatsId_AfterUpdate()
Me.straatId = ""
Me.straatId.RowSource = "SELECT Straat, StraatID FROM Straat WHERE PlaatsID = " & Me.plaatsId.Column(1) & " ORDER BY Straat"
End Sub

bij veld straat staat rijbron SELECT Straat, StraatID FROM Straat WHERE PlaatsID=806 ORDER BY Straat;

Werkt maar indien ik afsluit verdwijnt de straatnaam en slaat deze niet op terwijl als ik het veld straat nog een keer toevoeg staat deze daar wel in??

Naamloos.jpg
 
Laatst bewerkt:
Je verandert de Rijbron van de keuzelijst straatid. Die keuzelijst is geheid leeg als je het formulier opent, en dan is de andere keuzelijst uiteraard ook leeg. Want die heeft een filter nodig. Overigens vind ik het vreemd dat je naar Column grijpt, en niet de afhankelijke kolom gebruikt. Lijkt mij toch een stuk logischer. En ik zou ook niet AfterUpdate gebruiken, maar OnClick. Dat is directer.
Werkt maar indien ik afsluit verdwijnt de straatnaam en slaat deze niet op terwijl als ik het veld straat nog een keer toevoeg staat deze daar wel in??
Natuurlijk staat de waarde wel in de tabel; die heb je immers gekoppeld aan de keuzelijst. Alleen zie je 'm niet. Om de gekozen waarden te zien bij het openen moet je ervoor zorgen dat de keuzelijst niet gefilterd wordt.
 
ojeeeeeeeeee zoveel informatie maar ga het proberen :confused:

Nou keuzelijst plaats blijft gevuld alleen straat is weg zoals op voorbeeld

afterUpdate omdat eerst Plaats wordt ingevuld en daarna de straten tevoorschijn komen van die plaats
 
Laatst bewerkt:
Er is geen reden om AfterUpdate te gebruiken; Click werkt beter. Straten worden gevuld op het moment dat je op een plaats klikt.
 
Oke maar ik begrijp nog niet hoe het formulier de waarde wel kan opslaan heb al paar dingen geprobeerd

OnClick werkt idd ook dacht dat ik de plaats dan niet kon schrijven maar dat lukt wel :)

had de regel SELECT Straat, StraatID FROM Straat WHERE PlaatsID=806 ORDER BY Straat; weggehaald maar wordt weer terug gezet door database

terwijl in het formulier de plaatsen wel blijven staan :confused:
 
Laatst bewerkt:
Je code verandert de Rijbron van de tweede keuzelijst en zet er één specifieke waarde in. Dat betekent dat je in die keuzelijst alleen een waarde te zien krijgt als de eerste keuzelijst dezelfde waarde bevat. Dat heeft dus verder helemaal niks te maken met wat er in het veld is opgeslagen; de keuzelijst kan die waarde alleen laten zien als de inhoud ervan gelijk is aan de gefilterde waarde. En dat is dus voor de meeste records neem ik aan niet het geval.
Ergo: wil je bij het openen van een formulier kunnen zien wat er in de tweede keuzelijst is geselecteerd, dan mag er geen filter op staan.
De rijbron van de tweede keuzelijst moet dus te allen tijde deze SQL bevatten:
Code:
"SELECT Straat, StraatID FROM Straat ORDER BY Straat"
 
Ja zoiets heb ik in het veld eronder maar dat andere veld straatId veranderd steeds en wordt niet opgeslagen is daar geen mogelijkheid voor?
Plaats invullen en dan lijst met straten van die plaats en ook opslaan....

Oh wacht ik zie als ik een nieuwe invoer met plaats en dan straat zoek werkt dit ....zie alleen in de overige formulieren dat het dan verdwijnt maar na het heropenen van het formulier staan alle straten er weer

kan die code niet op een of andere manier in afterupdate of onclick in het veld straat?
 
Laatst bewerkt:
Je begint 'm door te krijgen geloof ik.... Een keuzelijst doet op zich niks met de opgeslagen waarde. Tenzij je natuurlijk iets anders kiest. Of de keuzelijst wat laat zien hangt af of de keuzelijst de opgeslagen waarde kan laten zien. En als je een filter gebruikt, is dat dus niet het geval. Als de keuzelijst straatnamen laat zien uit Utrecht omdat je die plaats in de eerste lijst hebt geselecteerd, kun je een straatnaam uit Utrecht kiezen. No problemo. Je ziet dan dus de opgeslagen waarde uit Utrecht. Als je vervolgens een andere plaats selecteert, zie je in de keuzelijst geen straten uit Utrecht meer. Logisch, want je hebt nu bijvoorbeeld Gouda gekozen, dus je ziet de straatnamen uit Gouda. Maar in de tabel staat nog steeds de gekozen straat uit Utrecht!. Alleen: je filtert de keuzelijst nu op Gouda. Dus je ziet niks.

Dat valt vooral op als je op deze manier een keuzelijst filtert in een doorlopend formulier; dan zie je om de haverklap velden 'verdwijnen' en weer terugkeren als je de betreffende plaats selecteert. Da's vervelend, maar niet verstorend, want aan je gegevens mankeert verder niks. Anders wordt het als je ook nog eens de keuzelijst leeg maakt bij het kiezen van een andere plaats. Dan moet je wel een andere straatnaam kiezen, want anders staat er niks meer in het veld.
De les is dus: op het moment dat de lijst niet meer gefilterd moet zijn moet je de oorspronkelijke (is ongefilterde) query weer aan de keuzelijst koppelen. Wanneer je dat doet, mag je zelf weten; gebeurtenissen genoeg zou ik zeggen :). Test uit wat voor jou werkt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan