CanGrow subform

Status
Niet open voor verdere reacties.

klablabla

Gebruiker
Lid geworden
28 apr 2008
Berichten
116
Hallo,

Ik heb 4 subform's die kijken alle 4 naar een andere query.
Deze query kijkt naar openstaande actiepunten en naar wie er ingelogd is.

Nu wil ik dus eigenlijk op het switchboard deze actiepunten naar voren laten komen.
Dit werkt allemaal maar ze hebben nu een vast aangegeven grootte.

Graag zou ik willen dat als er 1 actiepunt in staan, dat hij die hoogte aanneemt.
Staan er geen actiepunten in hoeft hij niet zichtbaar te zijn.

De cangrow functie die standaard in access zit doet helemaal niks als ik hem op yes zet.

Nu heb ik het volgende bedacht:
Me.subform1acties.Height = Me.subform1acties.Form.Count.Value * 999
count op het subform doet: =Count([ID])

Dit werkt als er acties zijn.

Zodra er geen acties zijn loop ik tegen het probleem aan, dat hij niet kan omgaan met #error waardes.
Als ik dan voor mijn code On Error Resume Next zet dan slaat hij de code erna over omdat de count nog niet voltooid is.




Een andere oplossing voor dit probleem is een repport in een form zetten.
Het repport wat ik gemaakt heb werkt perfect.



Iemand ideeen voor mijn probleem?
 
Je zou het subformulier kunnen verbergen als er geen records zijn. Dan heb je verder ook geen sores meer.

Code:
Private Sub Form_Current()
    With Me![Subformulier].Form
        .Visible = (.RecordsetClone.RecordCount > 0)
    End With
End Sub

Overigens dacht ik eerst aan een typfout, maar je doet het daarna nog een keer: repport is toch echt rapport in het Nederlands :)
 
helaas werkt het nog steeds niet.

Hij voert eerst de code uit. Daarna doet haalt hij pas de count op.
Hierdoor zijn de subforms 0 height.
Nu heb ik er een knop bij gemaakt. Die call dezelfde code.
Dat werkt wel.


Private Sub Form_Load()
On Error Resume Next
Me.subform1.Height = Me.subform1.Form.Count.Value * 999
Me.subform2.Height = Me.subform2.Form.Count.Value * 999
Me.subform3.Height = Me.subform3.Form.Count.Value * 999
Me.subform4.Height = Me.subform4.Form.Count.Value * 999
End Sub
 
Waarom gebruik je Load en niet Current?
 
Ik heb hem naar current gezet. Maar helaas lukt het nog niet.

Nu is het zo:
Me.subform1.Height = Me.subform1.Form.Count.Value * 999

Maar kan ik ook het volgende gebruiken?
Me.subform1.Height = Me.subform1.Form.RecordsetClone.RecordCount * 999
 
Kun je de uiteindelijke oplossing ook nog posten? Anders krijg je straks zoveel telefoontjes van mensen die het ook willen weten :)
 
Ik kijk in de qry's of er nog acties zijn.
Zijn er dan nog acties open ik gewoon een repport.
Waar dan de acties opstaan dmv die qry.


If DCount("*", "QryNacties") > 0 Then
DoCmd.OpenReport "RptACTIES-perpersoon", acViewPreview
Else

If DCount("*", "QryOActies") > 0 Then
DoCmd.OpenReport "RptACTIES-perpersoon", acViewPreview
Else

If DCount("*", "qryTActieph") > 0 Then
DoCmd.OpenReport "RptACTIES-perpersoon", acViewPreview
Else

If DCount("*", "QryWacties") > 0 Then
DoCmd.OpenReport "RptACTIES-perpersoon", acViewPreview
Else

If DCount("*", "qryTActieperTL") > 0 Then
DoCmd.OpenReport "RptACTIES-perpersoon", acViewPreview

End If
End If
End If
End If
End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan