keuzes met meerdere comboboxen

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

RSpan

Gebruiker
Lid geworden
10 jun 2009
Berichten
166
Beste forumleden

Ik zit met het volgende probleem.
Ik heb een formulier waarin met comboboxen keuzes gemaakt moeten worden om het juiste formulier geprint te krijgen.
Er moet eerst gekozen worden tussen cliënt of patiënt vervolgens voor freelancer en weeknr.
Om een rapport te krijgen moet de cbox freelancer en cbox weeknr altijd ingevuld zijn en van de cboxen cliënt of patiënt moet één van beide ingevuld zijn.
Dat laatste kom ik niet uit.
Dus met drie keuze mogelijkheden lukt het wel.
Kies client, freelancer en weeknr.
Maar met de extra keuze cbox cliënt of patiënt weet ik niet hoe ik deze moet invoegen.
Wanneer een van de cboxen niet is ingevuld dan krijg je een melding dat je deze vergeten bent in te vullen.
Dat kan natuurlijk niet bij de cboxen cliënt en patiënt omdat slechts één van beide is ingevuld.
In het kort:
Ik maak eerst de keuze tussen cliënt of patiënt en vervolgens kies ik dan voor de freelancer en het weeknr.
Verder moet er een foutmelding komen als beide cboxen cliënt en patiënt leeg zijn, is er één gevuld moet er geen melding verschijnen.

Het plaatje van het formulier en de code heb ik bijgevoegd.
Ik hoop :) dat iemand mij verder kan helpen.

Groet
René

Code:
Private Sub Pagina39_Click()
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) Then
            MsgBox "U moet nog een keuze maken"
         Else
        If IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een keuze maken"
         Else
          If IsNull(Me.cboSelectWeekCo) Or IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een keuze maken"
         Else
             If Not IsNull(Me.cboSelectNameOrg) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True
            End If
            If Not IsNull(Me.cboSelectNameCo) 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
                    End If
                End If
          End If
Exit_CmdGenerateCorFr_Click:
    Exit Sub

Err_CmdGenerateCorFr_Click:
    MsgBox Err.Description
    Resume Exit_CmdGenerateCorFr_Click

End Sub
 

Bijlagen

  • frmfact.JPG
    frmfact.JPG
    50,3 KB · Weergaven: 75
Laatst bewerkt:
Bedoel je zoiets, als in de bijlage?


Dat bedoel ik inderdaad, geweldig dank je wel.
nu moet ik nog de juiste keuze invoer gebruiken voor het rapport.

er moet nu dus gekozen worden tussen client of patient, afhankelijk welke cbox is ingevuld.
dus [organisatieID] of [patientID], kan dat volgens onderstaande code ?

Code:
If Not IsNull(Me.cboSelectNameOrg) Then
                stWhere = "[OrganisatieID] Or [patientID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True
            End If
            If Not IsNull(Me.cboSelectNameCo) 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
 
Ik neem aan dat je geen veld hebt met de naam: "[OrganisatieID] Or [patientID]"

Je zult dus één van de twee velden moeten kiezen uit de keuzelijsten:

Code:
If Not IsNull(Me.cboSelectNameOrg) Then
    stWhere = "[OrganisatieID] ='" & Me.cboSelectNameOrg & "' And "
    blnTrim = True
ElseIf Not IsNull(Me.cboSelectNameClient) Then
    stWhere = "[patientID] ='" & Me.cboSelectNameClient & "' And "
    blnTrim = True
End If
 
het werkt, het werkt .:D
mag ik jullie hartelijk bedanken voor de hulp.:thumb::thumb:
groet
René
 
keuze tussen twee cboxen

Beste forum leden, ik heb iets te vroeg gejuicht.
Het is de bedoeling dat er een keuze gemaakt wordt tussen de ene of de andere cbox. ( cliënt, cboSelectNameOrg of patiënt,cboSelectNamePat )Het moet dus niet mogelijk zijn om in beide cboxen gegevens te zetten.
Wanneer de gebruiker allebei de cboxen tegelijk gebruikt moet er een fout melding volgen.
Kan iemand mij hier een oplossing voor aandragen.
Hierbij nog even de code waarom het draait.

Groet
René

Code:
Private Sub Pagina39_Click()
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 IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een Freelancer selecteren"
         ElseIf IsNull(Me.cboSelectWeekCo) Or IsNull(Me.cboSelectNameCo) Then
            MsgBox "U moet nog een weeknummer selecteren"
         Else
             If Not IsNull(Me.cboSelectNameOrg) Then
                stWhere = "[OrganisatieID]=" & Me.cboSelectNameOrg & " And "
                blnTrim = True
                ElseIf Not IsNull(Me.cboSelectNameOrg) Then
                 stWhere = "[patientID]=" & Me.cboSelectNamePat & " And "
                 binTrim = True
            End If
            If Not IsNull(Me.cboSelectNameCo) 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
                    End If
                
         
Exit_CmdGenerateCorFr_Click:
    Exit Sub

Err_CmdGenerateCorFr_Click:
    MsgBox Err.Description
    Resume Exit_CmdGenerateCorFr_Click

End Sub
 
Laatst bewerkt:
Als je wilt voorkomen dat een keuzelijst wordt gebruikt nadat er in een andere keuzelijst een keuzelijst is gebruikt, dan moet je de andere keuzelijst op Disabled zetten.
Bijvoorbeeld:

Me.cboSelectWeekCo.Enabled=False

Waar je dat doet, is afhankelijk van je keuzelijsten. Bij het Laden van het formulier zet je beide keuzelijsten aan met =Enabled, bij de <Na bijwerken> gebeurtenissen van de twee betreffende keuzelijsten zet je de andere keuzelijst uit.
 
Als je wilt voorkomen dat een keuzelijst wordt gebruikt nadat er in een andere keuzelijst een keuzelijst is gebruikt, dan moet je de andere keuzelijst op Disabled zetten.
Bijvoorbeeld:

Me.cboSelectWeekCo.Enabled=False

Waar je dat doet, is afhankelijk van je keuzelijsten. Bij het Laden van het formulier zet je beide keuzelijsten aan met =Enabled, bij de <Na bijwerken> gebeurtenissen van de twee betreffende keuzelijsten zet je de andere keuzelijst uit.

ok dat ga ik proberen, dank je
groet
René
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan