Toon posts:

[Access] Formulier openen als querie niet leeg is

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem:

Ik wil als ik op een knop klik een formulier openen in het geval de query (ingesteld als recordbron van het te openen formulier) niet leeg is. Als er geen resultaten zijn is het namelijk onzinnig het formulier te openen. In VBA is dit heel makkelijk, maar de query is zo lang dat ik 'm daar niet wil invoeren. Is hier niet een aparte access functie voor?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Je kan toch in het te openen formulier, bij het event onload (ofzo) kijken of je recordset leeg is of niet. Zo ja dan cancel je het.

Visual Basic:
1
2
Set rst = me.recordsetclone
If rst.bof and rst.eof then cancel = true


Iets in die geest.

Verwijderd

Topicstarter
Dit kan idd.. maar ziet er een beetje... tja...
Maar ik zal eens kijken of er een mogelijkhijd is alles invisible te maken, of het het scherm naar 1 pixel te verkleinen ofzoiets..

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Waarom zou je dat willen? Je kan het formulier toch ook sluiten? Resizen/Invisible lijkt me een smerige en onnodige hack.


Visual Basic:
1
DoCmd.Close acForm, Me.Name

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
Ow, dit werkt perfect :)

Ik dacht in eerste instantie dat ie het formulier helemaal zou openen en dan gelijk weer sluiten. Maar hij laat hem niet eens zien idd.

Bedankt!

Verwijderd

Topicstarter
Ben nu een stukje verder alweer, maar ik kom weer een probleem tegen. Als het formulier automatisch sluit moet er na:

DoCmd.OpenForm "Formulier"

een stuk code uitgevoerd worden en anders niet. Ik heb geprobeerd met public variabelen dit voor elkaar te krijgen. maar zodra het formulier sluit eindigt de scope. Ik kan natuurlijk een deze variabelen doorgeven via een tekstvak, maar is er niet een nette manier voor?

[ Voor 4% gewijzigd door Verwijderd op 07-05-2003 15:24 . Reden: typfouten :P ]


Verwijderd

Verwijderd schreef op 07 May 2003 @ 15:16:
Ben nu een stukje verder alweer, maar ik kom weer een probleem tegen. Als het formulier automatisch sluit moet er na:

DoCmd.OpenForm "Formulier"

een stuk code uitgevoerd worden en anders niet. Ik heb geprobeerd met public variabelen dit voor elkaar te krijgen. maar zodra het formulier sluit eindigt de scope. Ik kan natuurlijk een deze variabelen doorgeven via een tekstvak, maar is er niet een nette manier voor?
Even gezocht op google ("access openform cancelled"), en de eerste hit was meteen raak...!

"You need to implement an Error Handler on your routine that opens the form. Here is one example of how you might do this:

code:
1
2
3
4
5
6
7
8
9
10
  On Error Resume Next
  DoCmd.OpenForm "Statement Form"
  With Err
     Select Case .Number:
        Case 2501:      ' The OpenForm action was cancelled
        Case Else:
           Beep
           MsgBox "Error #" & CStr(.Number) & " - " & .Description
     End Select
  End With


The above would simply ignore the case where the opening of the form was cancelled."

[ Voor 6% gewijzigd door Verwijderd op 07-05-2003 17:11 ]

Pagina: 1