Avatar billede fastwrite Nybegynder
25. september 2001 - 16:31 Der er 10 kommentarer og
3 løsninger

Combobox - når navnet ikke er der, skal den pænt spørge om man vil oprette

Hej.

Jeg har en combobox hvori der er nogle navne. Hvis jeg nu skriver FastWrite, og dette navn ikke findes i min combobox (!) - så skal den komme med en formular, hvor jeg kan indskrive navnet. Denne formular kan vi give navnet F-01. Combobox\'en kan vi kalde cbo-01, som henter sine oplysninger fra tabellen T-01
25. september 2001 - 16:32 #1
Hvorfor skal der komme en ny formular frem? Er det ikke nok at kende \"FastWrite\"?
Avatar billede fastwrite Nybegynder
25. september 2001 - 16:37 #2
he... Ser du - jeg har en formular F-01 - i den kan jeg indskrive alle de navne jeg har lyst til. Når jeg så kigger i min combobox, står der alle de nye navne jeg har skrevet.

MEN! Hvis jeg nu har skrevet et navn i min combo som IKKE findes, så skriver den nu at \"BUU - findes ikke i min liste\" - uden at gøre mere. Der vil jeg have VB\'en til at sende mig over i min navne-formular f01..

hvordan gøres det?
Avatar billede fastwrite Nybegynder
25. september 2001 - 16:49 #3
Kom nu med nogle svar.. ;o)
25. september 2001 - 16:53 #4
rolig nu...:o)

cbo-01 har en hændelse, som heder \"VedIkkePåListe\".
Her kan du skrive:

docmd.openform \"F-01\",,,,,acdialog
response = acdataerradded

/Thomas
Avatar billede fastwrite Nybegynder
25. september 2001 - 16:55 #5
Helt præcist hvad skal jeg skrive?

Er det i hændelsen \"after update\" ? Jeg har en engelsk version af access (internation virksomhed, du v\'..)

Men jeg prøver lige.
i aften...
for nu har jeg fri fra arbejde....
Avatar billede jens-peter Nybegynder
25. september 2001 - 16:56 #6
Du kan bruge hændelsen \"NotInList\":

Private Sub KmbBoxNglOrd_NotInList(NewData As String, Response As Integer)
  Response = acDataErrAdded
  DoCmd.OpenForm \"F-01\", acNormal, , , acAdd, acDialog, Me!Combobox.Text
End Sub

Hvor værdien fra combobox\'en overføres til formularen F-01. Denne formular skal så tage hånd om disse data.

mvh/Jens-Peter
Avatar billede nih Novice
25. september 2001 - 17:51 #7
Det er selvfølgelig lidt forskellig hvordan databasen er bygget op - og hvordan man vil have det til at virke.

Jeg har løst et tilsvarende problem hvor comboboksen slår op i en tabel og indsætter det valgte i en anden tabel.
Fidusen er at sætte relationen mellem tabellerne til IKKE \'gennemtving referentiel integritet\'.
Derved tjekker Access ikke om værdien i comboboksen findes i opslagstabellen.

Niels
Avatar billede terry Ekspert
25. september 2001 - 20:02 #8
Here is an example.
In the combo boxes NOT IN LIST EVENT you add a procedure that looks like this.

Private Sub cboGade_NotInList(NewData As String, Response As Integer)
Dim prompt As String
   
    Response = acDataErrContinue
   
    prompt = \"Denne gade findes ikke i listen, ønsker du at oprette den?\"
    If MsgBox(prompt, vbYesNo, \"Gade findes ikke!\") = vbYes Then
   
    DoCmd.OpenForm \"frmStreetMaintenance\", , , , acFormAdd, acDialog, NewData
        If DLookup(\"StreetID\", \"tblStreet\", \"StreetName = \'\" & NewData & \"\'\") Then
       
            Response = acDataErrAdded
           
        End If
   
    End If
End Sub

Then in the form you use to enter the new data add this to the ON LOAD EVENT.

Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then Me.StreetName = Me.OpenArgs
End Sub

An explanation:
In the example the user enters a strret name in the combo. If the name is NOT found then the user is asked if they want to create a new one. If they answer yes then the form for doing this gets opened, where they can create it. NOTE that the entered value gets passed to the form and is displayed in the field named Me.StreetName. 
When the form is closed I make a dlookup to make sure they actually did add a new record.
If they did then I set Response = acDataErrAdded
which tells Access to refresh the combo.

Easy IKKE?
Avatar billede terry Ekspert
25. september 2001 - 20:03 #9
NOTE: The combos LIMIT TO LIST property must be set to YES!
Avatar billede fastwrite Nybegynder
26. september 2001 - 11:11 #10
Hej Terry...

Jeg bliver NØDT til at afprøve dit eksempel!

Avatar billede fastwrite Nybegynder
26. september 2001 - 11:28 #11
DET VIRKER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

YES!!!!!!!!!!!!!!!!!!!!!! (ja, ok - min !-ration må være blevet brugt for idag)

Men de andre får også lige nogle point... som tak for deres indsats...
Avatar billede fastwrite Nybegynder
26. september 2001 - 11:29 #12
Forslag - jeg tror jeg printer alle forslagene ud - på alle spørgsmålene - og laver en kæmpe access-mappe!
Avatar billede terry Ekspert
26. september 2001 - 11:34 #13
Good idea fastwriter:)
I am sure I had answerd a similar question but just couldnt find it, so your suggestion may help!

Oh, and thank!

mvh
Terry
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester