[VBA] Waarde uit formulier != NULL tsjek

Pagina: 1
Acties:
  • 186 views sinds 30-01-2008
  • Reageer

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
Dag mensen,

ik wil een bepaalde waarde uit me formulier controleren of ie geen NULL is, oftwel, of er dus wel wat instaat. Ik heb het volgende, maar dit werkt niet echt, oftwel, de msgbox komt niet tevoorschijn en hij gaat vrolijk door met ze code..... Oplossingen worden graag ontvangen :)
Het met of zonder die .value maakt trouwens niet uit, het werkt gewoon niet :(


If [Forms]![Form1]![VD_nummer].value = Null Then
MsgBox "Je hebt niet alles ingevuld"
Exit Sub
Else
End If

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

zit dat in een onsubmit van een form :?

meer code kan handigzijn :)

disjfa - disj·fa (meneer)
disjfa.nl


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
onclick eventje :)
hier istie :D
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Command17_Click()
If [Forms]![Form1]![VD_nummer].value = Null Then
    MsgBox "Je hebt niet alles ingevuld"
    Exit Sub
Else
End If
If [Forms]![Form1]![VD_datum] = Null Then
    MsgBox "Je hebt niet alles ingevuld"
    Exit Sub
Else
End If
If [Forms]![Form1]![Betreft] = Null Then
    MsgBox "Je hebt niet alles ingevuld"
    Exit Sub
Else
End If
DoCmd.RunSQL "INSERT INTO VD2 " _
         & "VALUES ([Forms]![Form1]![VD_nummer], [Forms]![Form1]![VD_datum], " _
         & "[Forms]![Form1]![Betreft], [Forms]![Form1]![Opmerkingen])"

End Sub

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op woensdag 01 mei 2002 12:03 schreef Paxlie het volgende:
ik wil een bepaalde waarde uit me formulier controleren of ie geen NULL is, oftwel, of er dus wel wat instaat
Je staat gok ik naar de verkeerde data te zoeken. Een lege editbox bevat een lege string ("") en geen NULL, een lege combobox heeft ItemIndex 0 en geen contentstring NULL etc.

Probeer eens:
code:
1
2
3
4
If [Forms]![Form1]![VD_nummer].value = "" Then
  MsgBox "Je hebt niet alles ingevuld"
  Exit Sub
End If

ps. <code> met rechte haken doet wonderen.

Professionele website nodig?


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
code:
1
2
3
4
5
If [Forms]![Form1]![VD_nummer].value = "" Then
    MsgBox "Je hebt niet alles ingevuld"
    Exit Sub
Else
End If

Werkt ook niet echt. Het is een textbox overigens....
Iemand anders ideeen?
De msgbox komt nu namelijk gewoon niet naar voren, terwijl er op zeker gewoon nix in staat :?

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

ik heb idd ook altijd problemen met vba en msgboxjes :)
om formuliertjes te tsjeken gebruik ik daarom jscript.

maar ik keek net en als t formulier dus helemaal goed is probeer jij via clientside een record op de server te stoppen :? of kijk ik nou verkeerd...... (volgens mij kan dat nl helemaal niet, en ik denk dat dan de laatste regel iets van form.submit zijn.)

disjfa - disj·fa (meneer)
disjfa.nl


  • Blizard
  • Registratie: September 2001
  • Niet online
Kan je niet gewoon in je tabel (ik vermoed toch dat je tables hebt ?) als optie aanvinken : Vereist = ja ?! Of een validatieregeltje maken ..

  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Hee poppelepee dat probleempje heb ik ook!
Validatie helpt niets en ook verplicht maken help niet. De waarde van de Textbox is echt NULL... Maar hij kan er niets mee!

Sign of my Time


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
Als je dus in de tabel zegt dat hij verplicht is, dan krijg je gewoon een hele lelijke error dat ie ze SQL niet kan uitvoeren. (dat gaat nu ook nog fout, maar dat maakt nu nog ff niet uit) Dus om er nu voor te zorgen dat die ultra-lelijke error niet komt, wil ik dus de error zelf netjes afvangen. Als iemand andere dingen kan verzinnen is dat ook goed, maar ik wil dit gewoon afvangen. Dit omdat het een applicatie voor een bedrijf is, vandaar. Stage-opdracht van mij

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
Wel, je vangt die error dan op en toont een gepaste boodschap. Exception handling noemen ze dat.

In VB heb je daarvoor de (overigens lelijke) constructie:
code:
1
on Error GoTo ...

https://fgheysels.github.io/


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
Erg leuk, maar dan geeft ie dus alleen een error als de SQL fout gaat, want dan pas geeft ie een error.... Ik wil gewoon voordat ie de SQL uitvoert controleren of alle waardes wel netjes meegegeven worden aan de SQL. Dit werkt in mijn ogen namelijk een stuk netter en dan kan je een mooi msgboxje bakken met daarin een omschrijving van wat die mensjes moeten doen die de applicatie bezoeken. En nee, deze applicatie is nog niet server-sided ofzow....

Ik heb nu gewoon de tabellen en de forms op 1 plek staan. Misschien wel handig om nu alvast te weten. Is dit later makkelijk te splitsen??? Anders moet ik het nu alvast gaan doen namelijk. Ik heb overigens nog geen idee hoe ik dat zou moeten doen. iig is het de bedoeling dat meerdere mensen tegelijk met de applicatie kunnen werken.

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • Grum
  • Registratie: Juni 2001
  • Niet online
Een veel gebruikte shellscript methode om te kijken of een string leeg is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
[psuedo]
// hier hebben we de var 'STRING' en we weten niet of der wat in zit:
STRING = concat(STRING, "test");
if ( STRING != "test" )
{
   // string was niet empty
}
else
{
   // toch wel :)
}
[/pseudo]

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
Dat heb ik dus al gedaan, maar dat werkt op de 1 of andere absurde VBA-kutmanier dus niet. SchijtVBA ook, je kan er geen kloot mee doen.......
Anders was ik nou echt al veel verder dan dit ;(

Maarjah, we hobby-en wel weer verder. De eerste die het mij kan vertellen wint een eervolle vermelding in me sig

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


Verwijderd

code:
1
2
3
4
5
If IsNull([Forms]![Form1]![VD_nummer].value) Then
    MsgBox "Je hebt niet alles ingevuld"
    Exit Sub
Else
End If

We zijn hier bezig met een interne verhuizing, dus ik geef toe dat ik niet de hele thread heb gelezen...

Zelf gebruik ik altijd een functie hiervoor:
code:
1
2
3
4
5
6
Public Function GeenWaarde(varTekst) As Boolean
On Error Resume Next

    Let GeenWaarde = ((IsNull(varTekst)) Or (Len(varTekst) = 0))

End Function

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Loser oplossing die ik ook heb gebruikt, schrijf er iets in zoals "vul hier bla in" en sjek dan daar op

:r

Bikkelen gebeurt pas na 2:00


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
Debbus!,

je hebt net een eervolle vermelding gewonnen 8-)

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • Azzmodan
  • Registratie: Juni 2000
  • Laatst online: 27-08 11:56
Je kan ook, If .value Is Null Then, Gebruiken.

Btw hier is waarom:
Expressions that you might expect to evaluate to True under some circumstances, such as If Var = Null and If Var <> Null, are always False. This is because any expression containing a Null is itself Null and, therefore, Not True

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Als extra tip wil ik nog de functie Nz() even vermelden, ik neem tenminste aan dat dit over Access gaat.
Aan deze functie geef je een veld en een default waarde mee en als het veld NULL is dan wordt de default waarde geretourneerd en anders de waarde uit het veld.

Dus
code:
1
Debug.Print Nz([Forms]![Form1]![VD_nummer].value,"")

levert "" op indien het veld NULL is en anders de ingevulde waarde.
Ik vind hem erg makkelijk om Invalid Use of Null fouten te voorkomen.

  • Elissen
  • Registratie: Januari 2000
  • Laatst online: 27-07 15:54
Als we toch aan het tippen zijn ;)
De kreten "Is Empty" en "Is Nothing" (die laatste komt nergens terug in de help) kunnen ook wel eens uitkomst bieden, met name met recordsets.
Weet helaas zo ff 123 geen voorbeelden uit m'n hoofd.

Verwijderd

Nz(Veld [, Defaultwaarde]) is errug handig, als je Defaultwaarde niet invult is de defaultwaarde "".
Ook heeeel goed te gebruiken bij rekenen met datumvelden.

Is Nothing controleert of een object bestaat.

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
Dat laatste is zeker makkelijk, nu kon ik namelijk gewoon me query met 4 waardes uit laten voeren en dan snapt ie het ook nog als er nix ingevuld is. (had ik al afgevangen, maar dit is idd netter) spanks dudes :)

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Je moet de focus eerst even op het veld zetten...

veldX.setfocus
If veldx.text = "" then
ditendat
else
ietsanders
end if

veldY.setfocus
if veldY.text = "" then
ditendat
else
ietsanders
end if

Sign of my Time


Verwijderd

:? :? :? :?

Sorry maar wie heeft je dat wijsgemaakt?

  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

Topicstarter
die setFocus is niet nodig, aangezien je gewoon een veld aanroept

je gaat tog ook niet eerst contact met iemand maken en daarna hem pas aanspreken? (wie gaat dit trouwens ff proberen en opnemen? ;))

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • Elissen
  • Registratie: Januari 2000
  • Laatst online: 27-07 15:54
SetFocus is wel nodig als je de .text wilt benaderen. Een zeer vervelende eigenschap...

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Om het SetFocus probleem te omzeilen moet je het .text-gedeelte weglaten.
Om de een of andere vage reden kan je de default property (.text bij een textbox) wel gebruiken bij een veld dat niet de focus heeft.
Als de textbox txtVeldX niet de focus heeft dan lukt dit dus wel:
code:
1
strTekst = txtVeldX

maar dit niet:
code:
1
strTekst = txtVeldX.Text
Pagina: 1