[ACC2002-VBA]Subform probleem

Pagina: 1
Acties:

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 21:07
Weet iemand toevallig hoe je kunt bepalen of een subform 'leeg' is? Ik wil voor dat ik een functie uitvoer (verwijderen record) eerst bekijken of die record wel bestaat. Ik dacht zelf aan zoiets als dit, maar dat werkt dus niet;
code:
1
If IsNull(Me![Naam Subformulier]) Then Exit Sub

Hij loopt hier gewoon overheen, terwijl het formulier wel leeg is.
Ik heb IsEmpty ook al geprobeerd. Ook verwijzingen naar velden in het subformulier reageren niet, ook hier geen foutmelding. Dit moet toch met een simpel regeltje kunnen?

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • mauriceb
  • Registratie: Maart 2001
  • Laatst online: 23:23
Is eigenlijk wel logisch omdat je kijkt of "Naam subformulier" leeg is en dat is niet zo want daar staat de naam van het subformulier.

Je moet naar de recordset kijken van het subformulier en kijken of daar wel een recordcount is.

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 21:07
Yep.. Je hebt gelijk. Ik heb het nu zo opgelost

code:
1
2
3
4
5
6
7
Set rst = Db.OpenRecordset("SELECT * FROM [Inhoud subformulier] 
WHERE Voorwaarden")
If rst.RecordCount > 0 Then
'actie uitvoeren
Else
'niks doen
End if

Thnx voor de info

[ Voor 14% gewijzigd door Masch op 19-02-2003 10:51 . Reden: opmaak ]

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

wat veel makkelijker is (en het scheelt je ook nog een recordsetvariabele (en is dus sneller?)):
code:
1
2
3
4
5
if not me.recordset.recordcount then
  msgbox "het formulier is leeg!!!"
else
  'verwijderen regel
end if
edit:
Oh wacht... je hebt ook nog voorwaarden.

Als die in de recordset van het form zijn opgenomen is het prima, als je een filter gebruikt is de recordset niet leeg, maar het aantal records dat door de filter heen komt wel. In dat geval is er nog steeds een betere oplossing, namelijk het gebruik van DCount. DCount telt het aantal records in een gegeven tabel of query, indien nodig met een where-clausule erbij. zoiets:
code:
1
2
3
4
5
if DCount("veldnaam(bijv. ID)", "tabelNaam", "voorwaarden ZONDER where") > 0 then
  msgbox "er zijn records die aan de voorwaarden voldoen"
else
  msgbox "er zijn GEEN records die aan de voorwaarden voldoen"
end if

[ Voor 61% gewijzigd door OZ-Gump op 19-02-2003 13:25 ]

My personal website


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 21:07
OZ-Gump schreef op 19 February 2003 @ 13:21:

//knip\\

Als die in de recordset van het form zijn opgenomen is het prima, als je een filter gebruikt is de recordset niet leeg, maar het aantal records dat door de filter heen komt wel. In dat geval is er nog steeds een betere oplossing, namelijk het gebruik van DCount. DCount telt het aantal records in een gegeven tabel of query, indien nodig met een where-clausule erbij. zoiets:
code:
1
2
3
4
5
if DCount("veldnaam(bijv. ID)", "tabelNaam", "voorwaarden ZONDER where") > 0 then
  msgbox "er zijn records die aan de voorwaarden voldoen"
else
  msgbox "er zijn GEEN records die aan de voorwaarden voldoen"
end if
Inderdaad, dit werkt ook, THNX. Ik kende DCount helemaal niet, super handig :>

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:38
mauriceb schreef op 19 February 2003 @ 10:16:
Is eigenlijk wel logisch omdat je kijkt of "Naam subformulier" leeg is en dat is niet zo want daar staat de naam van het subformulier.

Je moet naar de recordset kijken van het subformulier en kijken of daar wel een recordcount is.
Je moet helemaal niet kijken naar recordcount, want dat ding is in lang niet altijd geldig.

Gebruikt .BOF/.EOF of een count query vooraf.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1