Toon posts:

[VBA] If veld is leeg *

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

Verwijderd

Topicstarter
Hallo tweakers,

Ik ben bezig met een schoolproject waarbij ik een acces database moet ontwikkelen.
Echter nu moet ik een stuk VB-code achter een knop hangen, maar ik krijg 1 onderdeeltje er maar niet werkend van.
Echt veel ervaring heb ik niet met VB, dus het kan best zijn dat de oplossing erg simpel is... |:(

De situatie is zo:
Ik heb een formulier met daarin 5 velden.
Als er een ander combinatie van velden ingevuld wordt moet hij een andere query openen.
Dus als bijv alleen veld1 en veld3 worden ingevuld, dan moet hij naar query1 gaan.

Nu zat ik te denken om dit met een simpele IF ELSE structuur op te lossen, maar nu blijkt dus dat ik niet weet hoe ik het in de code zet als het veld leeg is, ik heb de volgende opties geprobeert maar geen van alles werken:

code:
1
2
3
4
If Tekst1 = "" And Tekst2 <> "" And Tekst3<> "" And Tekst4 <> "" And Tekst5 <> "" Then
    stDocName = "alles"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
End If


code:
1
2
3
4
If Tekst1 == "" And Tekst2 <> "" And Tekst3<> "" And Tekst4 <> "" And Tekst5 <> "" Then
    stDocName = "alles"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
End If


code:
1
2
3
4
If Tekst1 = NULL And Tekst2 <> "" And Tekst3<> "" And Tekst4 <> "" And Tekst5 <> "" Then
    stDocName = "alles"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
End If


code:
1
2
3
4
If Tekst1 is NULL And Tekst2 <> "" And Tekst3<> "" And Tekst4 <> "" And Tekst5 <> "" Then
    stDocName = "alles"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
End If


Weet iemand misschien hoe ik dit met VB kan oplossen?

  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 26-04 09:18

Max|Burn

-- .. ... .--- .- .-.-.-

sja niet netjes maar je kan voor elke combinatie ook een aparte if statement maken.
ik snap trouwens niet helemaal waarom je 5 velden heb en er bijvoorbeeld maar 2 ingevuld hoeven te worden..de ene keer 1 en 3..dan 2 en 5...leg eens uit? :D

[ Voor 49% gewijzigd door Max|Burn op 01-06-2004 07:53 ]

ma ma ma ma ma macron one


Verwijderd

Topicstarter
dat wilde ik ook gaan doen, maar ik kan niet vinden wat ik moet gebruiken als het veld leeg is

  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 26-04 09:18

Max|Burn

-- .. ... .--- .- .-.-.-

and not tekst2 = ""
Trouwens je werk met VBA, dat is toch wat anders dan VB hoor.. :)

[ Voor 64% gewijzigd door Max|Burn op 01-06-2004 07:57 ]

ma ma ma ma ma macron one


Verwijderd

Topicstarter
dus het zou worden

code:
1
2
3
4
If not Tekst1 = "" And Tekst2 <> "" And Tekst3<> "" And Tekst4 <> "" And Tekst5 <> "" Then
    stDocName = "alles"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
End If


Dit zou betekenen dat veld1 leeg is en de rest ingevuld???

  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 26-04 09:18

Max|Burn

-- .. ... .--- .- .-.-.-

In je eigen voorbeelden doe je ook 2 verschillende dingen met tekst1, DAAROM vroeg ik wat je nou wilt bereiken ...
in het eerste voorbeeld moet tekst1 leeg zijn, in je derde voorbeeld wil je dat hij niet leeg is (?)

Als iets leeg moet zijn -> if tekst = ""
Als iets niet leeg mag zijn-> if not tekst = ""

[ Voor 19% gewijzigd door Max|Burn op 01-06-2004 08:08 ]

ma ma ma ma ma macron one


Verwijderd

Topicstarter
het is dus de bedoeling dat tekst1 leeg is en de rest niet.
sorry dat dit nogal simpel is, maar dit is me eerste stukje VB(a) :?

Verwijderd

Waarom werk je niet met een case structuur?
Dat werkt wat netter en overzichtelijker en je kan er meer statements in kwijt.

  • _VpS_
  • Registratie: September 2002
  • Laatst online: 14-04-2023
Not Tekst1 = "" is hetzelfde als Tekst1 <> ""

Wat jij zoekt is:
code:
1
2
3
If Not Isnull(Tekst1.Value) Then
     Debug.Print "Tekst1 is niet leeg"
End If


Eventueel i.c.m een Trim() op Tekstx

[ Voor 24% gewijzigd door _VpS_ op 01-06-2004 08:13 ]

(bb) || !(bb)


  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 26-04 09:18

Max|Burn

-- .. ... .--- .- .-.-.-

Hij wil alleen maar een query uitvoeren als bepaalde waardes ingevuld zijn hoor... Zijn vraag was hoe geef je aan in een if statement dat een veld niet leeg moet zijn, nou... if not bla = "" of wat hij zelf ook deed (vind not netter)

[ Voor 28% gewijzigd door Max|Burn op 01-06-2004 08:18 ]

ma ma ma ma ma macron one


  • _VpS_
  • Registratie: September 2002
  • Laatst online: 14-04-2023
En hoe controleert hij of bepaalde waarden zijn ingevuld?
Juist..

(bb) || !(bb)


  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 26-04 09:18

Max|Burn

-- .. ... .--- .- .-.-.-

_VpS_ schreef op 01 juni 2004 @ 08:18:
En hoe controleert hij of bepaalde waarden zijn ingevuld?
Juist..
om te testen , ach ja....Zn vraag is beantwoord dus laat ook maar.

[ Voor 25% gewijzigd door Max|Burn op 01-06-2004 08:20 ]

ma ma ma ma ma macron one


  • _VpS_
  • Registratie: September 2002
  • Laatst online: 14-04-2023
Lees de startpost nog eens. Hij heeft 5 textboxes op het scherm staan. De gebruiker heeft de keuze ze in te vullen of niet. De event handler van knop moet dan controleren welke zijn ingevuld en welke niet.

(bb) || !(bb)


  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 26-04 09:18

Max|Burn

-- .. ... .--- .- .-.-.-

_VpS_ schreef op 01 juni 2004 @ 08:21:
Lees de startpost nog eens. Hij heeft 5 textboxes op het scherm staan. De gebruiker heeft de keuze ze in te vullen of niet. De event handler van knop moet dan controleren welke zijn ingevuld en welke niet.
En dat doe je met je statements ja.
Wat zolex20 zei werkt beter, CASE maken.

[ Voor 6% gewijzigd door Max|Burn op 01-06-2004 08:25 ]

ma ma ma ma ma macron one


Verwijderd

Topicstarter
hmm,
Deze werkt niet...

code:
1
2
3
4
If Not IsNull(Tekst1.Value) And Tekst6 <> "" And Tekst8 <> "" And Tekst12 <> "" And Tekst16 <> "" Then
    stDocName = "alles-postcode"
    DoCmd.RunMacro stDocName
End If


Als ik nu alles behalve veld 1 invul krijg ik helemaal nix, er gebeurt nix zodra ik op de knop druk...

edit: lamaar, gewoon ff de NOT weghalen :D

[ Voor 21% gewijzigd door Verwijderd op 01-06-2004 08:30 ]

Pagina: 1