Actie achter knop werkt slechts eenmalig correct

Status
Niet open voor verdere reacties.

johanw

Gebruiker
Lid geworden
3 mrt 2003
Berichten
74
//////////CODE

Private Sub btn_opslaan_Click()

'variabelen declareren
Dim int_client As Integer
Dim qry_insert As String

'Controle of deze Compaq P/N een Client bevat. Zo ja dan Client op Yes (1) zetten.
If InStr(1, cmb_shell_pn, "-CL-", 1) <> 0 Then
int_client = 1
Else
int_client = 0
End If

'Query voor het invoeren van de bestelling in de database
qry_insert = "INSERT INTO tbl_best (fld_shell_pn, fld_client, fld_buysite, fld_cfp, fld_glro, fld_aim, fld_leverancier, fld_bedrag, fld_special_request, fld_requeist, fld_datum_bestelling, fld_tijd_bestelling, fld_aantal_besteld, fld_opmerkingen) VALUES (cmb_shell_pn, '" & CStr(int_client) & "', txt_buysite, txt_cfp, txt_glro, txt_aim, txt_leverancier, txt_bedrag, chk_special_request, txt_requeist, txt_datum_bestelling, txt_tijd_bestelling, txt_aantal_besteld, txt_opmerkingen);"

'Als er geen sprake is van special request dan Shell P/N en Buysite óf GLRO verplichten

'Controle Shell P/N
If Not chk_special_request And IsNull(cmb_shell_pn) Then

MsgBox "Er dient een Shell P/N opgegeven te worden!"

Exit Sub

End If

'Controle Buysite of GLRO
If IsNull(txt_glro) And IsNull(txt_buysite) And Not chk_special_request Then

MsgBox "Er dient een Buysite of GLRO nummer opgegeven te worden!"

Exit Sub

End If

'Waarschuwings meldingen uitschakelen
DoCmd.SetWarnings False

'Query voor het toevoegen van de bestelling uitvoeren
DoCmd.RunSQL qry_insert

'Waarschuwings meldingen weer inschakelen
DoCmd.SetWarnings True

'Bericht geven aan gebruiker
MsgBox "De bestelling is toegevoegd."

'Velden legen
cmb_shell_pn.Value = ""
txt_buysite.Value = ""
txt_cfp.Value = ""
txt_glro.Value = ""
txt_aim.Value = ""
txt_leverancier.Value = ""
txt_bedrag.Value = ""
chk_special_request.Value = No
txt_requeist.Value = ""
txt_datum_bestelling.Value = ""
txt_tijd_bestelling.Value = ""
txt_aantal_besteld.Value = ""
txt_opmerkingen.Value = ""

End Sub

\\\\\\\\\\CODE

Bovenstaande code zit gekoppeld aan de knop Opslaan.

Als ik het formulier open en een bestelling invoer dan werkt het goed, inclusief de foutmeldingen wanneer ik een veld vergeet.

Het record wordt toegevoegd, de velden worden geleegd. Alles in orde tot zover.

Nu ga ik een nieuwe bestelling invoeren. vergeet express de verplichte velden, deze keer meld hij dit niet en meld gelijk De bestelling is toegevoegd.

Ik snap er dus eigenlijk helemaal niks van. Moet het complete formulier gereset worden oid?

Edit: Ik zou natuurlijk code kunnen toevoegen om het formulier te laten sluiten en weer te laten openen, maar dat vind ik niet echt netjes.. Ook weet ik niet zeker of het dan wel werkt.
 
Laatst bewerkt:
is "" wel hetzelfde als een null-waarde? misschien ligt het daaraan. Als het formulier opent hebben de invoervelden de waarde null, je krijgt dus foutmeldingen als ze leegblijven, via de isnull functie. Daarna zet je de invoervelden op "", waardoor bovenstaande niet meer werkt. Dus zou ik zeggen probeer de velden eens op null te zetten.
 
Dat werkt inderdaad wel, bedankt!

Dit heb ik gewijzigd:


CODE:

'Velden legen
cmb_shell_pn.Value = Null
txt_buysite.Value = Null
txt_cfp.Value = Null
txt_glro.Value = Null
txt_aim.Value = Null
txt_leverancier.Value = Null
txt_bedrag.Value = Null
chk_special_request.Value = no
txt_requeist.Value = Null
txt_datum_bestelling.Value = Null
txt_tijd_bestelling.Value = Null
txt_aantal_besteld.Value = Null
txt_opmerkingen.Value = Null
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan