Toon posts:

[access 97] melding geven op leeg veld

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb het volgende probleem:
Er zijn een aantal velden die verplicht moeten worden ingevoerd, maar als ik dit aangeef in de tabel dan wordt er bij het verlaten van het formulier, waar ik net een nieuw project heb ingevoerd, geen melding gegeven dat er een verplicht veld niet is ingevoerd.

Nu had ik de oplossing om dit via Form_beforeupdate aan te geven. Dit als volgt:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If Combo17 = Empty Then
MsgBox ("U dient eerst het veld Type project te vullen alvorens u kunt opslaan.")

Else

Dim strMsg As String
strMsg = "Er zijn gegevens gewijzigd."
strMsg = strMsg & "@Wilt u de gegevens opslaan?"
strMsg = strMsg & "@"
If MsgBox(strMsg, vbQuestion + vbYesNo, "Gegevens opslaan?") = vbYes Then

Else
DoCmd.RunCommand acCmdUndo
End If

End Sub

Maar nu is het geval dat hij altijd (dus ook wanneer ik geen type project invul) naar de laatste msgbox te gaan.

Hoe kan ik dit oplossen? Heeft het misschien iets met mijn opties te maken in Access?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:34
Hoezo hij geeft geen melding ?
Als je een veld als verplicht hebt 'gemarkeert' (Lengte 0 toegestaan: nee, verplicht: ja), dan moet Access toch een fout geven als je voor dat veld niets invult.

Waarom slaat hij de then - tak van die if over:
Je checkt of Combo17 empty is. Volgens mij gaat hij dan gewoon gaan kijken of er wel een object aan Combo17 geassigned is. Als je nu eens iets zoals dit ongeveer probeerde:
code:
1
if Combo17.Text = ''

oid. (* whoami kan geen VB of VBA)

Tip: gebruik ook [ code] tags rond je code, dat maakt het er wat leesbaarder op.
gebruik ook duidelijke variable namen

https://fgheysels.github.io/


Verwijderd

If Combo17 = Empty Then

If Combo17 = "null" Then
of
If Combo17 = "" Then

volgens mij was het zoiets! ik ga nog ff voor je rondkijken! tada ben nu ook bezig met formulieren enzow dus ook handig voor mij :-)!!


eeuhh ->
stukje codes

code:
1
Dim strErrorMsg       ' Error melding


stukjes code


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Else

    text         = Request.Form("nieuws")   
        
    On Error Resume Next
    strErrorMsg = ""
    
    text = Trim(Text)
    If Len(Text) = 0 Or Len(Text) > 150 Then Err.Raise 1
    Text = Replace(Text, "'", "''")
    If Err.number <> 0 Then
        strErrorMsg = strErrorMsg & "ERROR --> Je mag er best wel een idee neerzetten! Of je zin is te lang!<br />" & vbCrLf
        Err.Clear
    End If


    On Error Goto 0

    If strErrorMsg <> "" Then
        ' Show the error message that got us here!
        Response.Write strErrorMsg
    Else


das die van mij!

[ Voor 62% gewijzigd door Verwijderd op 09-01-2003 08:59 ]


Verwijderd

Topicstarter
Hij geeft echt geen melding. Hij sluit het formulier zonder melding, maar slaat niks op en

if Combo17.text = " "

werkt helaas ook niet

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:34
Verwijderd schreef op 09 januari 2003 @ 08:57:
Hij geeft echt geen melding. Hij sluit het formulier zonder melding, maar slaat niks op en

if Combo17.text = " "

werkt helaas ook niet


Ik zet geen spaties tussen die quotes.
Anders kan je ook nog proberen met die IsNull functie oid.

code:
1
if IsNull(Combo17.text)

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 09 January 2003 @ 08:58:

[...]


Ik zet geen spaties tussen die quotes.
Anders kan je ook nog proberen met die IsNull functie oid.

code:
1
if IsNull(Combo17.text)
Ook dit werkt helaas niet!

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
De Isnull dient als het goed is te werken, maar ga anders een in de foutopsporing kijken welke waarde dat veld aangeeft.

En gebruikt geen DoCmd.RunCommand acCmdUndo, maar gebruik gewoon cancel = true

Verwijderd

Topicstarter
Inmiddels ben ik er al achter, maar waarom hij het vorige niet deed begrijp ik nog steeds niet. Ik heb nu het volgende gedaan

Niet de code bij Form_BeforeUpdate, maar achter een knop om het formulier te verlaten.
Ik heb nu de volgende code:

If Combo17 <> "" Then


DoCmd.close

Else

MsgBox ("U dient eerst het veld 'Type project' te vullen alvorens u kunt opslaan.")

End If

Ik heb het dus net andersom gedaan.

Toch bedankt voor de hulp.
Pagina: 1