Avatar billede riverhorse Nybegynder
10. december 2006 - 13:57 Der er 6 kommentarer og
1 løsning

Fejl teksten kommer men scriptet forsætter

Har lavet sådan en række felter der skal være udfyldt før at den må gemme posten, og msgboxne kommer også rigtig op men den gemmer posten alligevel med tomme felter, hvad gør jeg forkert ?

Private Sub Kommandoknap25_Click()
On Error GoTo Err_Kommandoknap25_Click
If IsNull(Me.id) Then
MsgBox "Id feltet må ikke være tomt...!"
ElseIf IsNull(Me.init) Then
MsgBox "Initialer feltet må ikke være tomt...!"
ElseIf IsNull(Me.Område) Then
MsgBox "Område feltet må ikke være tomt...!"
ElseIf IsNull(Me.udstyrs_id) Then
MsgBox "Udstyrs id feltet må ikke være tomt...!"
ElseIf IsNull(Me.type) Then
MsgBox "Type feltet må ikke være tomt...!"
ElseIf IsNull(Me.tekst) Then
MsgBox "Tekst feltet må ikke være tomt...!"
Else:
MsgBox "Posten er nu gemt...!"
End If

DoCmd.GoToRecord , , acNewRec

Exit_Kommandoknap25_Click:
Exit Sub
Avatar billede thesurfer Nybegynder
10. december 2006 - 14:07 #1
Sådan:


Else:
MsgBox "Posten er nu gemt...!"
DoCmd.GoToRecord , , acNewRec
End If

Jeg går ud fra, at denne linie gemmer dataene: DoCmd.GoToRecord , , acNewRec
Avatar billede thesurfer Nybegynder
10. december 2006 - 14:08 #2
Rettelse:

Else:
DoCmd.GoToRecord , , acNewRec
MsgBox "Posten er nu gemt...!"
End If

Jeg har bare byttet rundt på de to linier, så den gemmer først, og giver besked bagefter..

- Svar.
Avatar billede kabbak Professor
10. december 2006 - 14:08 #3
If IsNull(Me.id) Then
MsgBox "Id feltet må ikke være tomt...!"
' disse 2 linier skal gentages for hver if, selvfølgelig med den rigtige felts navn

Me.Id.setFocus
exit sub
Avatar billede terry Ekspert
10. december 2006 - 17:03 #4
I'm a little puzzled as to why to have the validation code in a buttons on Click event.

You should try putting the code in the BEFORE update event of the form and set the Cancel parameter to True if any field is invalid.
Avatar billede terry Ekspert
10. december 2006 - 17:11 #5
Any changes you make to an exist or new record will get saved when you move to another record. And I am quite sure that when you use

DoCmd.GoToRecord , , acNewRec

you are moving to another record. IE moving AWAY from th erecord being edited.
So this is what is SAVING the record. You need to CANCEL the save if any fields are invalid and this is why you should do it in the BEFORE UPDATE event.
Avatar billede thesurfer Nybegynder
10. december 2006 - 17:16 #6
terry> Have a look at 10/12-2006 14:08:35.. This was already suggested.

If there are no errors, it will execute:

DoCmd.GoToRecord , , acNewRec
MsgBox "Posten er nu gemt...!"
Avatar billede terry Ekspert
10. december 2006 - 17:50 #7
Why move to a new record to save the one your editing?

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Will save the record if it is necessary, but there is also a rsik of the record being saved without the button being pressed and therefore NOT get validated.

That is why I am suggestion moving the validation code to the BEFORE UPDATE event, to make sure it ALWAYS gets done.
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