selectievakje in formulier

Status
Niet open voor verdere reacties.

RSpan

Gebruiker
Lid geworden
10 jun 2009
Berichten
166
Hoi forumleden

ik heb een formulier waarin doormiddel van een combobox een keuze voor een jaar gemaakt wordt en met een druk op de knop dan een rapport getoond wordt met de gegevens.
Nu wil ik graag als extra, middels een selectievakje de keuze hebben in het printen van het rapport(vakje aanvinken) of het alleen maar tonen van het rapport(vakje uitvinken)
Ik dacht dit met de volgende code te kunnen doen maar het lukt me niet kan iemand me verder helpen.

Groet
René


Code:
'omzet BTW overzicht
Private Sub cmdResetJ_Click()
      Me.CboSelectJ = Null
      Me.select = Null
End Sub

Private Sub cmdGenerateReportBTWj_Click()
    On Error GoTo Err_cmdGenerateReportBTWj_Click

    Dim stDocName As String
    Dim stWhere As String
   
               If IsNull(Me.CboSelectJ) Then
            MsgBox "U moet nog een jaar selecteren"
         Else
       
                If Not IsNull(Me.CboSelectJ) Then
                    stWhere = "[jaar]=" & Me.CboSelectJ & " And "
                    blnTrim = True
                End If
                      If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
                  
             [COLOR="Blue"]     If Not IsNull(Me.select) Then
                  
                    stDocName = "RptOvFinGegJaar"
                    DoCmd.OpenReport stDocName, acPreview, , stWhere
                    'DoCmd.OpenReport stDocName, acViewNormal, , stWhere
                    DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
                    DoCmd.Close
                End If
                
                stDocName = "RptOvFinGegJaar"
                DoCmd.OpenReport stDocName, acViewReport, , stWhere
               

           End If[/COLOR]              
End If
              
Exit_cmdGenerateReportBTWj_Click:
    Exit Sub

Err_cmdGenerateReportBTWj_Click:
    MsgBox "Geannuleerd of geen gegevens om te printen"
    Resume Exit_cmdGenerateReportBTWj_Click
End Sub
 
Laatst bewerkt:
Om te beginnen de tip om je code wat netter neer te zetten; als je het ook zo in je VBA hebt staan, is het best lastig om de lagen van de geneste procedures goed te volgen. Gebruik tabjes dus op de goede manier! Je wilt namelijk altijd kunnen zien op welke If-laag je zit; dan weet je ook sneller of er een End If ontbreekt of niet, en waar een commando bij hoort.

Nu het probleem.
Je het alleen een controle gemaakt op het veld Select die kijkt of het veld leeg is. (If Not IsNull(Me.Select)). Je moet echter een controleren of het vakje is aangeklikt (-1) of niet. In het eerste geval wil je printen, en de overige gevallen een Preview. Dus:

Code:
If IsNull(Me.CboSelectJ) Then
    MsgBox "U moet nog een jaar selecteren"
Else
    If Not IsNull(Me.CboSelectJ) Then
        stWhere = "[jaar]=" & Me.CboSelectJ & " And "
        blnTrim = True
    End If
    If blnTrim Then
        stWhere = Left(stWhere, Len(stWhere) - 5)
        stDocName = "RptOvFinGegJaar"
        If Me.Select = -1 Then
            'DoCmd.OpenReport stDocName, acViewNormal, , stWhere
            DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
        Else
            DoCmd.OpenReport stDocName, acPreview, , stWhere
        End If
    End If
End If
 
Om te beginnen de tip om je code wat netter neer te zetten; als je het ook zo in je VBA hebt staan, is het best lastig om de lagen van de geneste procedures goed te volgen. Gebruik tabjes dus op de goede manier! Je wilt namelijk altijd kunnen zien op welke If-laag je zit; dan weet je ook sneller of er een End If ontbreekt of niet, en waar een commando bij hoort.

Nu het probleem.
Je het alleen een controle gemaakt op het veld Select die kijkt of het veld leeg is. (If Not IsNull(Me.Select)). Je moet echter een controleren of het vakje is aangeklikt (-1) of niet. In het eerste geval wil je printen, en de overige gevallen een Preview. Dus:

Code:
If IsNull(Me.CboSelectJ) Then
    MsgBox "U moet nog een jaar selecteren"
Else
    If Not IsNull(Me.CboSelectJ) Then
        stWhere = "[jaar]=" & Me.CboSelectJ & " And "
        blnTrim = True
    End If
    If blnTrim Then
        stWhere = Left(stWhere, Len(stWhere) - 5)
        stDocName = "RptOvFinGegJaar"
        If Me.Select = -1 Then
            'DoCmd.OpenReport stDocName, acViewNormal, , stWhere
            DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
        Else
            DoCmd.OpenReport stDocName, acPreview, , stWhere
        End If
    End If
End If

Ok bedankt het werkt:thumb:
En bedankt voor de tip, ik zal mijn codes eens na lopen om ze nog wat netter neer te zetten:rolleyes:

Groet
René
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan