Keuzelijst

Status
Niet open voor verdere reacties.
Ik ben uiteraard best bereid om een voorbeeldje te maken, maar eigenlijk vind ik de vraag waarom je dit zo wilt doen, veel interessanter... De gebeurtenis <NotInList> gebruik ik eigenlijk alleen maar bij tabellen die dynamisch zijn. Zoals ik al aangaf: een tabel Klanten, of een tabel Straatnaam. Een tabel [Burg. staat] bevat maar een paar waarden, waar er af en toe dan wellicht een bij moet. Het kost jouw 20 keer meer tijd om de code te schrijven, dan even de tabel te openen en de ontbrekende waarde er bij te typen. En dan heb ik de tijd die je in de extra vraag hebt gestoken nog niet eens meegerekend... En mijn tijd :).
 
Maar om het zoeken wat makkelijker te maken, hier een voorbeeldje dat ik zelf (ook) gebruik. Dit is voor een tabel [tLanden] waarin ik een nieuw land kan toevoegen als dat nog niet in de landentabel staat. Zoals ik al eerder zei: gebruik een tabel als het om data gaat die dynamisch aangepast moet worden, en gebruik een Lijst met waarden voor keuzelijsten die nauwelijks veranderen, zoals in jouw geval. Dan is het namelijk veel makkelijker om de lijst zelf even aan te passen.
Code:
Private Sub geboorteland_NotInList(NewData As String, Response As Integer)
Dim msg As String, CR As String, strSQL As String, Result as Variant

    CR = Chr$(13)
    If NewData = "" Then Exit Sub
    msg = "'" & NewData & "' staat niet in de lijst." & CR & CR
    msg = msg & "Wil je ´" & NewData & "´ toevoegen?"
    If MsgBox(msg, vbQuestion + vbYesNo) = vbYes Then
        strSQL = "INSERT INTO tLanden ([Land]) VALUES(""" & NewData & """)"
        CurrentDb.Execute strSQL, dbFailOnError
    End If
    ' Zoek het nieuwe LandID op in de tabel tLanden.
    Result = DLookup("[LandID]", "tLanden", "[Land]=""" & NewData & """")
    If IsNull(Result) Then
        ' Als het land niet is aangemaakt, Response argument op Error message zetten en herstellen.
        Response = acDataErrContinue
        MsgBox "Nog een keer proberen...", vbOKOnly
    Else
        ' Als het land is aangemaakt, het Response argument Added zetten.
        Response = acDataErrAdded
        Me.geboorteland = Result
        Me.Refresh
    End If
End Sub
 
bedankt voor je tip en code,

ik heb nog één van je nodig tip

hoe kan je het beste een realatie maken Al je goed keuzelijst maakt

bij voorbeeld de relatie tussen

(uitvaart} en (overledene}

Als u deze tip geef ga ik er mee aan de slag

Alvast bedankt
 
Ik snap je vraag niet helemaal, vrees ik. Een overledene sla je met zijn gegevens misschien op in een Personentabel, en in de tabel Uitvaart sla je dan de PersoonID op. Idem dito met de Ondernemers: het veld OndernemersID neem je op in de tabel Uitvaart. Op het formulier maak je van dat veld een Keuzelijst met invoervak, waarbij je dan het veld OndernemersID het beste kunt verbergen zodat je kunt zoeken op de naam van de ondernemer. Als je op je formulier de keuzelijst met de wizard maakt, zal die wizard dat al uit zichzelf doen, dus dat gaat bijna nooit fout.
 
Sorry mijn vraag is onduidelijk,

ik Sluit de discussie

Als ik weer hulp nodig heb dan hoor me.

maar wel bedankt toe zo ver.
 
hallo OctaFish,

ik ben op dit moment bezig met het opmaken van fomlieren en de codes
ik heb allen nog een fout zitten is de grote code, met de Msgbox,

ik vul de
locatie : (wil de deze toevoegen ) ja
dan krijg de msgbox vul ik in en dat sluit is de msgbox
en dan krijg niet ingevoerd - nog een keer proberen - dan zeg nee
dat sluit ik mijn invoer kaart, en open de invoer kaart week
en dan staat de locatie er wel,

Zou u voor mijn willen kijk of dan ander kan, ik gebruik u code die ik dat voorbeeld bestand zit

Alvast bedankt !
gr rene
 
Is dit wel de goede db? Ik zie nergens de juiste code.
 
Dat klopt ik heb de Db niet geupload,

ik gebeuk de code uit jou voorbeeld bestand van 13 januari !
 
hallo OctaFish,

in deze Db zit de code Bekijk bijlage uitvaartverzorging.zip

het gaat fout is het formulier Uitvaart regelen
Als ik dan de locatie invult en locatie best niet, dan ga ik hem toevoegen, en als ik dat alles ingevuld heb, in de msgbox , dat sluit ik msgbox - dat gaat het fout

Alvast bedankt voor het kijken
 
Je maakte een kleine, maar rampzalige fout: de naam van de tabel in de DLookup was verkeerd. En dan kan de functie uiteraard nooit de juiste locatie opzoeken.
Code:
    Result = DLookup("[LocatieID]", "Begraafplaatsen en Crematorium", "[Locatie]=""" & NewData & """")
En dan werkt het prima.
 
hallo OctaFish,

mag ik u nog een ding vragen, is er ook een Code, dat als de MsgBox is in gevuld dat het venster sluit, en niet naar record 2 gaat?
 
hallo OctaFish,

Heb u toevallig mijn last berichtje nog gezien ?

Alvast bedankt
 
Gezien wel :). De oplossing is niet op voorhand te geven, want afhankelijk van hoe je formulier werkt. Bij een niet-gebonden formulier werk je niet in een tabel, maar als het record al in de tabel staat, moet je het verwijderen. Dus de ene keer werkt ongedaan maken prima, de andere keer moet je een record verwijderen met een query.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan