Keuzekijst, selectie, nieuwe keuzelijst ......

Status
Niet open voor verdere reacties.

Friend

Verenigingslid
Lid geworden
31 jan 2009
Berichten
1.128
Beste forum experts : is het mogelijk om als je een keuzelijst heb gekoppeld aan een invoerveld en je kiest bv de plaatsnaam dat hij dan een nieuwe keuzelijst laat zien met de straatnamen en als je dan de straat kiestda hij dan in het veld de plaatsnaam invuld +, + staatnaam. Lijkt mij eindeloos mooi alleen ik weet niet hoe ik het moet verwezelijken. mijn dank is groot. Friend
 
Hopelijk vind je het niet vervelend dat ik de vraag niet helemaal snap?? Je hebt een keuzelijst met Plaatsnamen, en een keuzelijst met Straatnamen? En je wilt dat een tekstveld gevuld wordt met Plaatsnaam + Straatnaam? Dat is namelijk niet zo moeilijk...
 
Beste OctaFish, laat ik proberen het te verduidelijken. In een rittenadministratie wordt elke keer in een veld op het formulier de bestemming ingetikt. Vele bestemmingen zijn vaste adressen die in een aparte tabel staan. Velden : totaal adres, plaats, straatnaam, huisnr, postcode. In het totaal veld staat dan bijvoorbeeld : Amsterdam, Rokin 12, 1060 AA.
Als de rit wordt ingevuld wordt via wizard opzoeken in het veld adres vanuit het rijtje het complete adres (Amsterdam, Rokin 12, 1060 AA) geselecteerd. Dit zijn echter erg veel adresssen de de cbobox wordt erg lang. Ik dacht zelf als je dit stapgewijs kan doen dan maak je de lijst korter en daarmee makkelijker om te zoeken. Dus als bij de eerste klik op het pijltje alleen de plaatnamen verschijnen dan maak je de lijst al aanmerkelijk korter. Als je dan voor een bepaalde plaats kiest waarna je daarna direct een keuzelijst krijgt met de straatnamen dan is het mijns inziens een sneller proces. Helmaal als na de laatstekeuze dit gecombineerd in je veld wordt ingevuld. Ik hoop het zo iets verduidelijkt te hebben. Laat anders waar weten he ik het nog beter kan verwoorden. Hartelijk dank. Friend
 
Je wilt, als ik het goed vertaal, dus één keuzelijst, die eerst de plaatsnamen laat zien, en bij een keuze van de plaatsnaam de bijbehorende adressen? Want dat zie ik eerlijk gezegd niet als een mogelijkheid. Je moet dan een actieve, werkende keuzelijst aanpassen. Terwijl hij actief is. Je zult derhalve altijd met twee keuzelijsten moeten werken. Tenzij ik me natuurlijk sterk vergis, in welk geval ik graag achter aansluit bij het ophalen van de oplossing ;)
Ik zou dus gewoon twee keuzelijsten gebruiken, waarbij de eerste lijst als filter dient voor de tweede lijst, die met een <Na bijwerken> van de eerste lijst wordt opgesteld.
Eventueel zet je ze op dezelfde plek op het formulier, waarbij je de ene verbergt en de ander zichtbaar maakt, en omgekeerd.
 
OctaFish, Ik begrijp wat je zegt, maar heb hier toch wel je hulp bij nodig. Ik heb een hele simpele opzet van een database gemaakt. Zou het mogelijk zijn dat je hier jouw oplossing in aangeeft?? Dan wordt het voor mij inzichtelijk en kan ik het in mijn originele database maken. M.vr.gr. Friend
 

Bijlagen

  • keuze1.zip
    10,8 KB · Weergaven: 17
Wat dacht je van dit voorbeeld? Ik heb er wat plaatsen en adressen bijgezet, want je voorbeeldtabellen waren niet helemaal bruikbaar...
 

Bijlagen

  • keuze.zip
    67,3 KB · Weergaven: 50
OctaFish, Werkt erg mooi. Ga dit in mijn formulier inpassen. Begrijp alleen nog niet goed hoe de toevoegquery gemaakt is. Mocht je daar nog wat licht op willen laten vallen voor mij ... dan heel graag. Bedankt voor al je werkt en je goede hulp. Friend
 
De toevoegquery die in het voorbeeld zit is eigenlijk overbodig. Die heb ik gebruikt om een andere tabel te vullen. Ergo: mag je weggooien!
 
OctaFish, dank voor je reactie. Ik stuit op het volgende. Als ik via het formulier een adres selecteer waarvan het uiteindelijke gecombineerde adres in Tekst3 komt dan heb ik het idee dat dit in de tabel Tadres komt. Als je echter afsluit. Het formulier weer opstart en opnieuw gaat invoeren dan zijn, of verdwijnen de eerdere opgeslagen adressen. Ligt dit aan mij of klopt dit. De vraag is dan hoe kan ik de gecombineerde adressen definitief vastleggen in de tabel. Klopt het dat de tabellen Tstraatnaam en Tplaatsnaam ook niet relevant zijn? Hoor weer graag van je. Thanks. Friend
 
Klein foutje....

In de gebeurtenis <Bij aanwijzen> worden alle vakken leeggemaakt, ook het veld dat gekoppeld is aan het adres. De code moet derhalve zo zijn:

Code:
Private Sub Form_Current()

    Me.cboAdres = ""
    Me.cboPlaats = ""

End Sub
 
OctaFish, Dank je zeer. Weghalen van de laatse regel lost het in eerste instantie inderdaad op.
(Fadres/ontwerpweergave/aanwijzen). Alleen als je dan bv 3 records invoer en je sluit af en start Fadres weer op dan staat hij op record 1. Die is dan ook leeg zodat je automatisch eigenlijk daar weer gaat selecteren (in record 1) en deze overschrijft dan de eerdere opgeslagen info in de Tadres. Is dit nog op te lossen. Is het mogelijk om als in Tadres record 1 gevuld is je in Fadres je record 1 niet meer kan gebruiken(vergrendeld) of verborgen wordt totdat je in Tadres het veld leeg maakt? Ik hoor weer graag van je. Thanks again.. Friend
 
Er staat nog een regel
Code:
            Me.txtAdres = ""
in de procedure Private Sub cboPlaats_AfterUpdate(). Die mag je ook weghalen.
Typisch gevalletje van testinstellingen gebruiken ;)
 
OctaFish, wat zijn dingen mooi als ze werken. :thumb: Morgen het maar weer eens proberen h:et in mijn database te krijgen. Thanks again!! :thumb: Friend
 
OctaFish, ben bezig om het in te passen in mijn bestaande database. Maar stuit toch op mijn onkunde, denk ik. Mij adressen tabel heet: Trittenadressen. Met de volgende velden hierin : plaatsnaam, adres, huisnr, huisnrtoev, postcode, land. De namen heb ik in de gebeurtenisprocedures aangepast alsmede het aantal kolommen voor het opzoeken.
veld cboPlaats gaat prima. cboAdres opent en ik zie de tabel op uit te kiezen maar na de keuze krijg ik de volgende melding : Fout-2147352567 (8002009) tijdens uitvoering. U kunt geen waarde aan dit object toekennen. Bij foutopsporing markeert hij het volgende :
HTML:
Private Sub cboAdres_AfterUpdate()
Me.txtAdres = Me.cboAdres.Column(5) & ", " & Me.cboAdres.Column(0) & " " & Me.cboAdres.Column(1) & ", " & Me.cboAdres.Column(2) & ", " & Me.cboAdres.Column(3) & ", " & Me.cboAdres.Column(4)
End Sub

De totale codes die ik zie zijn :
HTML:
Option Compare Database

Private Sub cboAdres_AfterUpdate()

     Me.txtAdres = Me.cboAdres.Column(5) & ", " & Me.cboAdres.Column(0) & " " & Me.cboAdres.Column(1) & ", " & Me.cboAdres.Column(2) & ", " & Me.cboAdres.Column(3) & ", " & Me.cboAdres.Column(4)


End Sub

Private Sub cboPlaats_AfterUpdate()

strSQL = "SELECT adres, Huisnr, Huisnrtoev, Postcode, Plaatsnaam FROM Trittenadressen " _
    & "WHERE (Plaatsnaam='" & Me.cboPlaats & "') " _
    & "ORDER BY adres, Huisnr, Huisnrtoev;"
Me.cboAdres.RowSource = strSQL
Me.cboAdres.Requery
With CurrentDb.OpenRecordset(strSQL)
    If .RecordCount = 1 Then
        Me.cboAdres.Value = .Fields(0).Value
        Me.txtAdres = Me.cboAdres.Column(5) & ", " & Me.cboAdres.Column(0) & " " & Me.cboAdres.Column(1) & ", " & Me.cboAdres.Column(2) & ", " & Me.cboAdres.Column(3) & ", " & Me.cboAdres.Column(4)
    Else
        Me.cboAdres = ""
    End If
End With

End Sub
Enig idee wat ik verkeerd doe ??? Hoor weer graag van je. Thanks. Friend
 
Staat de veldlengte in de tabel wel goed voor het tekstveld? Als je veel velden combineert, kan het zijn dat je boven het toegestane aantal tekens uitkomt.
 
OctaFish, Klopt, heb inmiddels de veldlengte aangepast en dat werkt prima. Nog 1 probleempje : in het cboAdres zie je in de opzoektabel wel straat, huisnr etc alleen na selectie geeft hij alleen de plaatsnaam in de cboAdres. Waarschijnlijk heb ik in de code een foutje gemaakt. Zou jij hem nog een keer willen nalezen voor mij ?

(het veld txtAdres heb ik aangepast in beginadres)

HTML:
Option Compare Database

Private Sub cboAdres_AfterUpdate()

     Me.beginadres = Me.cboAdres.Column(0) & ", " & Me.cboAdres.Column(1) & " " & Me.cboAdres.Column(2) & " " & Me.cboAdres.Column(3) & ", " & Me.cboAdres.Column(4) & ", " & Me.cboAdres.Column(5) & ", " & Me.cboAdres.Column(6)


End Sub

Private Sub cboPlaats_AfterUpdate()

strSQL = "SELECT plaatsnaam, adres, Huisnr, Huisnrtoev, Postcode, land FROM Trittenadressen " _
    & "WHERE (Plaatsnaam='" & Me.cboPlaats & "') " _
    & "ORDER BY adres, Huisnr, Huisnrtoev;"
Me.cboAdres.RowSource = strSQL
Me.cboAdres.Requery
With CurrentDb.OpenRecordset(strSQL)
    If .RecordCount = 1 Then
        Me.cboAdres.Value = .Fields(0).Value
        Me.beginadres = Me.cboAdres.Column(0) & ", " & Me.cboAdres.Column(1) & " " & Me.cboAdres.Column(2) & " " & Me.cboAdres.Column(3) & ", " & Me.cboAdres.Column(4) & ", " & Me.cboAdres.Column(5) & ", " & Me.cboAdres.Column(6)
    Else
        Me.cboAdres = ""
    End If
End With

End Sub

Hartelijk dank. Friend
 
OctaFish, Ik denk dat het tijd is voor een bakkie want ik zie nu dat in jouw ontwerp bij cboAdres uiteindelijk ook alleen de straatnaam wordt vermeld. Anyway Thanks .... Friend:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan