Avatar billede billeschou Nybegynder
28. november 2000 - 14:58 Der er 11 kommentarer og
1 løsning

tvungen indtastning i felt

Hvad kan man gøre for at forhindre Access i at forlade en tekstboks hvis man ikke har indtastet noget i den?

Jeg har benyttet følgende kode i to formularer (navnene på kontrolelementerne er tilpasset den respektive formular):

Private Sub txtTitle_LostFocus()
   
    If IsNull(Forms!frmActivity!txtTitle.Value) Then
      MsgBox \"Please enter an activity title\"
      DoCmd.GoToControl \"pgeMain\"
      DoCmd.GoToControl \"txtTitle\"
    Else
      DoCmd.RunCommand acCmdSaveRecord
    End If
   
End Sub

Det virker sådan set fint nok men i den ene af formularerne får jeg (ved forsøg på lukning af formularen) følgende fejl før min messagebox popper op:

Microsoft Jet-databasemotoren kan ikke finde en post i tabellen \"tblActivityType\", hvor nøglen svarer til feltet/felterne \"AC_AT_ID\".

Vælger jeg \"OK\" og \"JA\", vises messageboxen 4 gange - skifter jeg til en anden formular oppe i menubaren, vises den 2 gange (begge ting gælder i begge formularer og begge gange skulle den jo helst kun vises en gang).

Hvordan kan jeg ellers opnå hvad jeg ønsker?
Avatar billede janbangm Nybegynder
28. november 2000 - 15:07 #1
Jeg prøver lige at kommer med et forslag.

1. Du kan sætte obligatorisk til ja for di den tabel. Derefter skal udfyldes noget for at gemme posten.

Har du i din kode prøvet med me.titel?
Avatar billede billeschou Nybegynder
28. november 2000 - 15:29 #2
Ja men problemet er Access tillader skift til et andet kontrolelement selvom et felt med egenskaben obligatorisk ikke indeholder en værdi (mig bekendt).
Avatar billede billeschou Nybegynder
28. november 2000 - 15:30 #3
og me.titel gør ingen forskel - det er pænere men løser ingen problemer :)
Avatar billede ingolf Nybegynder
28. november 2000 - 16:09 #4
Hvad med at indsætte noget i valideringsregel
Avatar billede hudibras Nybegynder
28. november 2000 - 16:20 #5
Hvis der må forekomme dubletter i feltet, kan det godt blive svært. Hvis du sætter dublette ikke tilladt og opretter en record hvor feltet er tomt. Det kan så give problemer ved visning, men sæt en regel op for det.
Avatar billede billeschou Nybegynder
28. november 2000 - 16:23 #6
Lad mig præcisere problemstillingen: Min kode fungerer tilfredsstillende men jeg undrer mig over hvorfor min messagebox vises flere gange ved lukning af formular eller skift til en anden formular - det må have noget med hændelsesrækkefølgen i Access at gøre, altså noget teknisk. Der må være nogen her på eksperten der kan give en forklaring på fænomenet
Avatar billede billeschou Nybegynder
28. november 2000 - 16:25 #7
Egentlig spurgte jeg jo om en alternativ løsning og det har jeg vel fået, men jeg er tilfreds med min kode som den er nu, hvis det altså ikke lige var for de overflødige messageboxe ved \"misbrug\" af systemet.
Avatar billede janbangm Nybegynder
28. november 2000 - 19:52 #8
Jeg tror helt sikker det har noget med syntaxen i din kode at gøre. Nu spørger jeg dumt. Du har de sammen felter i begger formularer.

Prøve også at slette value. Den mener jeg alså ikke der skal med, da det ikke er værdien i feltet du henviser til men selve feltet.
Avatar billede billeschou Nybegynder
29. november 2000 - 11:41 #9
Syntaxen!? Nej, det tvivler jeg på... Det er rigtigt at feltet hedder det samme i begge formularer:

frmActivity:
Private Sub txtTitle_LostFocus()
   
  If IsNull(Forms!frmActivity!txtTitle.Value) Then
      MsgBox \"Please enter an activity title\"
      DoCmd.GoToControl \"pgeMain\"
      DoCmd.GoToControl \"txtTitle\"
  Else
      DoCmd.RunCommand acCmdSaveRecord
  End If
   
End Sub

frmArticle:
Private Sub txtTitle_LostFocus()
   
  If IsNull(Forms!frmArticle!txtTitle.Value) Then
      MsgBox \"Please enter an article name\"
      DoCmd.GoToControl \"pgeJournalist\"
      DoCmd.GoToControl \"txtTitle\"
  Else
      DoCmd.RunCommand acCmdSaveRecord
  End If
   
End Sub

Hmm... efter at have ændret \"If IsNull(Forms!frmArticle!txtTitle.Value) Then\"
til \"If IsNull(Me!txtTitle) Then\"
så dukker messageboxen kun op henholdsvis 3 og 1 gange i stedet for 4 og 2 som tidligere. Det er da en start.
Avatar billede billeschou Nybegynder
29. november 2000 - 11:42 #10
Så var det alligevel noget med syntaxen... damn! ;)
Avatar billede billeschou Nybegynder
29. november 2000 - 15:19 #11
janbangm > Vil du have pointene... dit svar kom tættest på en løsning på mit problem
Avatar billede janbangm Nybegynder
29. november 2000 - 15:25 #12
Det syntes jeg der må være op til dig. Du han enten give dem til mig eller dig selv
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