Avatar billede civil05 Nybegynder
23. februar 2007 - 00:56 Der er 4 kommentarer og
1 løsning

brug af fejlkode til MsgBox

Hej

jeg har en rulleliste i en indtastningsformular, hvorfra man kan vælge en værdi, samtidig kan man også selv indtaste, sålænge det instastede svarer til en værdi i rullelisten. I tilfælde hvor man indtaster en forkert værdi vil det være fint at få det at vide, men ikke med access' standardfejlbesked. Derfor har jeg forsøgt at anvende fejlkoden 2237 i følgende kode, men jeg kan ikke få det til at virke. kan nogen hjælpe?

Private Sub Form_Error(DataErr As Integer, Response As Integer)
  Select Case DataErr
      Case 2237
        MsgBox "BESKED", vbCritical
        Response = acDataErrContinue
      Case Else
        MsgBox DataErr & vbNewLine & Error(DataErr)
  End Select
End Sub
Avatar billede mugs Novice
23. februar 2007 - 05:39 #1
Prøv at indsætte koden i comboens egenskab "Not In List". Det er jo en hændelse du søger, hvis det indtastede ikke findes på listen.

Hvis du vil tilføje det indtastede til comboen, kan du bruge denne. En forudsætning for at koden fungerer er, at egenskaben BegrænsTilListe i comboen er sat til Ja.

Private Sub felt1_NotInList(NewData As String, Response As Integer)
Dim prompt As String
DoCmd.SetWarnings False
Response = acDataErrContinue
prompt = "Denne type findes ikke i listen ønsker du at oprette den?"
Exit Sub
If MsgBox(prompt, vbYesNo, "Typen findes ikke!") = vbYes Then
DoCmd.RunSQL "INSERT into Register (feltnavn) VALUES ('" & NewData & "')"
Response = acDataErrAdded
End If
DoCmd.SetWarnings True
End Sub
Avatar billede civil05 Nybegynder
23. februar 2007 - 09:41 #2
ved at anvende en hændelse under "Not on list" kan jeg godt få en box frem, men efter at have trykket ok til denne, får man stadig en fejlbox fra access med felj 2237..
jeg har indsat følgene:

Private Sub felt1_NotInList(NewData As String, Response As Integer)
MsgBox "Besked"
DoCmd.CancelEvent
End Sub
Avatar billede mugs Novice
23. februar 2007 - 09:56 #3
Det gør jeg ikke ved brug ag min egen kode. Jeg har ikke mulighed for at arbejde med Access på denne maskine. Prøv evt. at indsætte denne:

DoCmd.SetWarnings False
MsgBox "Besked"
DoCmd.SetWarnings true
DoCmd.CancelEvent

Eller brug min kode og arbejd ud fra den med at ændre hændelsen.
Avatar billede civil05 Nybegynder
23. februar 2007 - 13:53 #4
Hej Mugs,

jeg har forsøgt at anvende din kode, og nu virker det, jeg får ingen mgsbox frem, men den anullerer indtastningen og åbner rullemeenuen, og det er faktisk en god løsning, så tak for hjælpen...
Avatar billede mugs Novice
23. februar 2007 - 14:19 #5
Godt du fik det til at fungere. Tak for point og god weekend :o)
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