keuze in vba tussen twee rapporten

  • Onderwerp starter Onderwerp starter RSpan
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

RSpan

Gebruiker
Lid geworden
10 jun 2009
Berichten
166
Hallo allemaal

In een formulier kan ik de keuze maken middels comboboxen tussen cliënt, patiënt ,freelancer en periode.
Afhankelijk van de keuze wordt er een rapport geprint, werkt goed.
De volgorde is:
-Eerst kies je voor cliënt of patiënt (cboSelectNameOrg of cboSelectNamePat)
-Daarna kies je de freelancer en de periode (cboSelectNameCo en cboSelectWeekCo)
-Vervolgens wordt er het rapport (rptfactFrlCo) gebaseerd op een query geprint.

Nu wil ik een extra mogelijkheid maken nl een tweede rapport.

keuze patiënt, freelancer en week rapport a
keuze cliënt, freelancer en week rapport b

kan dit?

Mvg
René


hieronder de huidige code.

Code:
Private Sub cmdResetCo_Click()
    Me.cboSelectNameOrg = Null
    Me.cboSelectNameCo = Null
    Me.cboSelectWeekCo = Null
    Me.cboSelectNamePat = Null
End Sub

Private Sub CmdGenerateCorFr_Click()
    On Error GoTo Err_CmdGenerateCorFr_Click

    Dim stDocName As String
    Dim stWhere As String
   
    If IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
            MsgBox "U moet nog een cliënt of patiënt selecteren"
         ElseIf Not IsNull(Me.cboSelectNameOrg) And Not IsNull(cboSelectNamePat) Then
            MsgBox "U moet een cliënt of een patiënt selecteren niet beide!"
         ElseIf IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een Freelancer selecteren"
         ElseIf IsNull(Me.cboSelectWeekCo) Then
            MsgBox "U moet nog een weeknummer selecteren"
         Else
             If Not IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True

                Else
              If Not IsNull(Me.cboSelectNamePat) And IsNull(Me.cboSelectNameOrg) Then
                 stWhere = "[patientID]=" & Me.cboSelectNamePat & " And "
                 binTrim = True

            End If
            End If
            If Not IsNull(Me.cboSelectNameCo) And IsNull(cboSelectNamePat) Then
                stWhere = "[FreelancerID]=" & Me.cboSelectNameCo & " And "
                blnTrim = True
            End If

                If Not IsNull(Me.cboSelectWeekCo) Then
                    stWhere = stWhere & stWhere & "[WeekID]=" & Me.cboSelectWeekCo & " And "
                    blnTrim = True
                End If
          
                    If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
            End If
                                stDocName = "rptfactFrlCo"
                DoCmd.OpenReport stDocName, acPreview, , stWhere
                 DoCmd.OpenReport stDocName, acViewNormal, , stWhere
                  DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
                DoCmd.Close

                    End If
                
         
Exit_CmdGenerateCorFr_Click:
    Exit Sub

Err_CmdGenerateCorFr_Click:
    MsgBox "Geannuleerd of geen gegevens om te printen"
    Resume Exit_CmdGenerateCorFr_Click

End Sub
 
Op basis waarvan wil je de selectie maken? Je zou een extra keuzelijst op je formulier kunnen maken als de keuze door de gebruiker wordt bepaald. In je code verander je dan de naam van het rapport door de gekozen waarde van de keuzelijst.
 
Op basis waarvan wil je de selectie maken? Je zou een extra keuzelijst op je formulier kunnen maken als de keuze door de gebruiker wordt bepaald. In je code verander je dan de naam van het rapport door de gekozen waarde van de keuzelijst.

De bedoeling is dat als er voor een patiënt gekozen is dan moet er rapport a geprint worden.
Maar als er voor een cliënt gekozen wordt moet er een rapport b geprint worden.

ik wil hiervoor liever niet nog een extra selectie box maken maar graag zien dat dit in de vba code verwerkt wordt opdat de gebruiker er verder niet mee geconfronteerd wordt.

of is dat niet mogelijk?
 
Dan kun je de rapportnaam met een IF achter de knop laten kiezen. Je zet dan in die If,,Then..Else de rapportnaam in een variabele, en in de printopdracht gebruik je dan de variabelenaam.
 
Dan kun je de rapportnaam met een IF achter de knop laten kiezen. Je zet dan in die If,,Then..Else de rapportnaam in een variabele, en in de printopdracht gebruik je dan de variabelenaam.

Hoi Michel

je hebt het over een if enz. achter de knop maar kan het niet in de huidige code verwerkt worden dus bv.

Code:
Private Sub cmdResetCo_Click()
    Me.cboSelectNameOrg = Null
    Me.cboSelectNameCo = Null
    Me.cboSelectWeekCo = Null
    Me.cboSelectNamePat = Null
End Sub

Private Sub CmdGenerateCorFr_Click()
    On Error GoTo Err_CmdGenerateCorFr_Click

    Dim stDocName As String
    Dim stWhere As String
   
    If IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
            MsgBox "U moet nog een cliënt of patiënt selecteren"
         ElseIf Not IsNull(Me.cboSelectNameOrg) And Not IsNull(cboSelectNamePat) Then
            MsgBox "U moet een cliënt of een patiënt selecteren niet beide!"
         ElseIf IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een Freelancer selecteren"
         ElseIf IsNull(Me.cboSelectWeekCo) Then
            MsgBox "U moet nog een weeknummer selecteren"
         Else
             If Not IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True

                Else
              If Not IsNull(Me.cboSelectNamePat) And IsNull(Me.cboSelectNameOrg) Then
                 stWhere = "[patientID]=" & Me.cboSelectNamePat & " And "
                 binTrim = True

            End If
            End If
            If Not IsNull(Me.cboSelectNameCo) And IsNull(cboSelectNamePat) Then
                stWhere = "[FreelancerID]=" & Me.cboSelectNameCo & " And "
                blnTrim = True
            End If

                If Not IsNull(Me.cboSelectWeekCo) Then
                    stWhere = stWhere & stWhere & "[WeekID]=" & Me.cboSelectWeekCo & " And "
                    blnTrim = True
                End If
         [COLOR="Red"][I] En dan hier iets van:

              If Not IsNull(Me.cboSelectNamePat) Then

                    If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
            End If
                                stDocName = "rpt_A"
                DoCmd.OpenReport stDocName, acPreview, , stWhere
                 DoCmd.OpenReport stDocName, acViewNormal, , stWhere
                  DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
                DoCmd.Close

Else
                
                       If Not IsNull(Me.cboSelectNameOrg) Then

                    If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
            End If
                                stDocName = "rp_B"
                DoCmd.OpenReport stDocName, acPreview, , stWhere
                 DoCmd.OpenReport stDocName, acViewNormal, , stWhere
                  DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
                DoCmd.Close

                    End If[/I][/COLOR]
Exit_CmdGenerateCorFr_Click:
    Exit Sub

Err_CmdGenerateCorFr_Click:
    MsgBox "Geannuleerd of geen gegevens om te printen"
    Resume Exit_CmdGenerateCorFr_Click

End Sub

of stel ik nu een heel dome vraag?
 
Kan een stuk simpeler:

Code:
Private Sub CmdGenerateCorFr_Click()
Dim stDocName As String, stWhere As String
On Error GoTo Err_CmdGenerateCorFr_Click

   
    If IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
        MsgBox "U moet nog een cliënt of patiënt selecteren"
        ElseIf Not IsNull(Me.cboSelectNameOrg) And Not IsNull(cboSelectNamePat) Then
            MsgBox "U moet een cliënt of een patiënt selecteren niet beide!"
        ElseIf IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een Freelancer selecteren"
        ElseIf IsNull(Me.cboSelectWeekCo) Then
            MsgBox "U moet nog een weeknummer selecteren"
        Else
            If Not IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True
            Else
                If Not IsNull(Me.cboSelectNamePat) And IsNull(Me.cboSelectNameOrg) Then
                    stWhere = "[patientID]=" & Me.cboSelectNamePat & " And "
                    blnTrim = True
                    [B][COLOR="Blue"]stDocName = "rpt_A"[/COLOR][/B]
                End If
            End If
            If Not IsNull(Me.cboSelectNameCo) And IsNull(cboSelectNamePat) Then
                stWhere = "[FreelancerID]=" & Me.cboSelectNameCo & " And "
                blnTrim = True
                [COLOR="blue"][B]stDocName = "rp_B"[/B][/COLOR]
            End If
            If Not IsNull(Me.cboSelectWeekCo) Then
                stWhere = stWhere & stWhere & "[WeekID]=" & Me.cboSelectWeekCo & " And "
                blnTrim = True
            End If
''          En dan hier iets van:
        If blnTrim Then
            stWhere = Left(stWhere, Len(stWhere) - 5)
        End If
    End If

    DoCmd.OpenReport stDocName, acPreview, , stWhere
    DoCmd.OpenReport stDocName, acViewNormal, , stWhere
    DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
    DoCmd.Close

    Exit Sub

Err_CmdGenerateCorFr_Click:
    MsgBox "Geannuleerd of geen gegevens om te printen"

End Sub

Heb ook maar gelijk een verkeerde variabele verbeterd...
 
Kan een stuk simpeler:

Code:
Private Sub CmdGenerateCorFr_Click()
Dim stDocName As String, stWhere As String
On Error GoTo Err_CmdGenerateCorFr_Click

   
    If IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
        MsgBox "U moet nog een cliënt of patiënt selecteren"
        ElseIf Not IsNull(Me.cboSelectNameOrg) And Not IsNull(cboSelectNamePat) Then
            MsgBox "U moet een cliënt of een patiënt selecteren niet beide!"
        ElseIf IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een Freelancer selecteren"
        ElseIf IsNull(Me.cboSelectWeekCo) Then
            MsgBox "U moet nog een weeknummer selecteren"
        Else
            If Not IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True
            Else
                If Not IsNull(Me.cboSelectNamePat) And IsNull(Me.cboSelectNameOrg) Then
                    stWhere = "[patientID]=" & Me.cboSelectNamePat & " And "
                    blnTrim = True
                    [B][COLOR="Blue"]stDocName = "rpt_A"[/COLOR][/B]
                End If
            End If
            If Not IsNull(Me.cboSelectNameCo) And IsNull(cboSelectNamePat) Then
                stWhere = "[FreelancerID]=" & Me.cboSelectNameCo & " And "
                blnTrim = True
                [COLOR="blue"][B]stDocName = "rp_B"[/B][/COLOR]
            End If
            If Not IsNull(Me.cboSelectWeekCo) Then
                stWhere = stWhere & stWhere & "[WeekID]=" & Me.cboSelectWeekCo & " And "
                blnTrim = True
            End If
''          En dan hier iets van:
        If blnTrim Then
            stWhere = Left(stWhere, Len(stWhere) - 5)
        End If
    End If

    DoCmd.OpenReport stDocName, acPreview, , stWhere
    DoCmd.OpenReport stDocName, acViewNormal, , stWhere
    DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
    DoCmd.Close

    Exit Sub

Err_CmdGenerateCorFr_Click:
    MsgBox "Geannuleerd of geen gegevens om te printen"

End Sub

Heb ook maar gelijk een verkeerde variabele verbeterd...

Geweldig bedankt weer voor je input :thumb::D


Code:
Private Sub cmdResetCo_Click()
    Me.cboSelectNameOrg = Null
    Me.cboSelectNameCo = Null
    Me.cboSelectWeekCo = Null
    Me.cboSelectNamePat = Null
End Sub

Private Sub CmdGenerateCorFr_Click()
 On Error GoTo Err_CmdGenerateCorFr_Click

 Dim stDocName As String
 Dim stWhere As String
   
    If IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
            MsgBox "U moet nog een Client of Patient selecteren"
         ElseIf Not IsNull(Me.cboSelectNameOrg) And Not IsNull(cboSelectNamePat) Then
            MsgBox "U moet een Client of een Patient selecteren niet beide!"
         ElseIf IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een Freelancer selecteren"
         ElseIf IsNull(Me.cboSelectWeekCo) Then
            MsgBox "U moet nog een weeknummer selecteren"
         Else
             If Not IsNull(Me.cboSelectNameOrg) And IsNull(cboSelectNamePat) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True
                    stDocName = "rptfactFrlCoO"
                
             Else
              If Not IsNull(Me.cboSelectNamePat) And IsNull(Me.cboSelectNameOrg) Then
                 stWhere = "[patientID]=" & Me.cboSelectNamePat & " And "
                 binTrim = True
                    stDocName = "rptfactFrlCoP"

              End If
             End If
            If Not IsNull(Me.cboSelectNameCo) And IsNull(cboSelectNamePat) Then
                 stWhere = "[FreelancerID]=" & Me.cboSelectNameCo & " And "
                 blnTrim = True
            End If

            If Not IsNull(Me.cboSelectWeekCo) Then
                    stWhere = stWhere & stWhere & "[WeekID]=" & Me.cboSelectWeekCo & " And "
                    blnTrim = True
            End If
          
         If blnTrim Then
            stWhere = Left(stWhere, Len(stWhere) - 5)
         End If
     End If
     DoCmd.OpenReport stDocName, acPreview, , stWhere
     DoCmd.OpenReport stDocName, acViewNormal, , stWhere
     DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
     DoCmd.Close

           
     Exit Sub
         

Err_CmdGenerateCorFr_Click:
    MsgBox "Geannuleerd of geen gegevens om te printen"

End Sub
het werkt prima zo :thumb:

GRoet
René :D
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan