16. december 2012 - 18:00Der er
7 kommentarer og 1 løsning
Gøre et felt afhængig af svaret i et andet felt (Access 2010)
Hvis jeg har oprettet et felt, hvor brugeren af databasen skal udfylde et felt med enten ja eller nej, er det så muligt, at såfremt brugeren svarer ja, at gøre et andet felt obligatorisk for brugeren?
Eksempelvis:
Felt 1: Er der aftalt prisafslag - ja/nej
Felt 2: Hvis ja i felt 1 - Hvor stort et afslag i DKK?
Det mest pædagogiske vil nok være kun at vise feltet i de situationer, hvor der er svaret Ja.
I Felt1's EfterOpdatering/AfterUpdate hændelse lægger du: Me.Felt2.Visible=Me.Felt1 (altså: hvis Felt1 er True, er Felt2 synlig)
I formularens VedAktuel/OnCurrent hændelse lægger du samme kode: Me.Felt2.Visible=Me.Felt1 (herved viser/skjuler du Felt2 svarende til Felt1 i den aktuelle post)
Den første funktion EfterOpdatering/AfterUpdate fungerer rigtig godt. Men felt 2 bliver ikke gjort obligatorisk ved denne handling. Har du et tip til dette?
I forhold til det du skriver med VedAktuel/OnCurrent hændelse. Denne funktion har jeg ikke kunnet finde i generer hændelsesprocedure.
Obligatorisk: Jeg er lidt usikker på, hvad du mener med "felt2 bliver ikke gjort obligatorisk". Jeg forstod det som at du gerne ville se feltet. Hvis du mener, at cursoren skal placeres i feltet, hedder det: Me.Felt2.SetFocus
VedAktuel: Jeg bruger ikke "generer hændelsesprocedure" - hedder det mon FormCurrent eller sådan noget?
Ellers kan du let oprette proceduren på anden måde: 1. Når du står i formularen i Design mode, klikker du i det lille grå kvadrat helt oppe til venstre (ud for linealerne). 2. Tast så F4 (nu ser du Egenskabsarket) 3. Klik på fanen "Hændelser" 4. Øverste linie er "VedAktuel". Vælg hændelsesprocedure og klik på knappen med de tre punktummer. 5. Nu står du i VBA editoren i den korrekte rutine.
Me: Me er helt enkelt det engelske ord "me" (mig). Det bruger man når man vil referere til et kontrolelement, som befinder sig på den aktuelle formulaer eller rapport. Det forhindrer misforståelser.
Er først lige begyndt at arbejde i Access, men kender VBA sproget fra Excel - jeg er dog aldrig stødt på ME før ;)
Det jeg mener med at felt 2 ikke bliver obligatorisk er, at brugeren af formularen har mulighed for at arbejde videre selvom vedkommende ikke har skrevet noget i feltet. - Hvis du har et tip til dette, vil jeg meget gerne høre det.
Det letteste vil nok være at tjekke det inden du forlader posten, f.eks.:
Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.Felt1=True And IsNull(Me.Felt2) Then MsgBox "Indtast xxxxx", vbInformation, "Manglende data" Me.Felt2.SetFocus Cancel = True End If End Sub
... og med hensyn til din besked vedr. point: Behold dem bare - og velkommen i Access-verdenen ;O)
Synes godt om
Ny brugerNybegynder
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.