Advertisement

07.07.2008 at 01:20PM PDT, ID: 23544645
[x]
Attachment Details

Update subforms rowsource based off of combobox

Asked by ClaudeWalker in Access Forms, Microsoft Access Database, Access Coding/Macros

Tags: , ,

Is there a way to change the rowsource of a subform?

I have an In/Out board subform whose rowsource is contingent upon a combobox in the parent form.

The records in the combo box are people and groups.

cboBox source:
Jim
Office
Field
Phil
James
Supervisor

The Many to many table associating these people to groups looks like:
Person  Group
Jim           Office
Jim           Field
Phil           Supervisor
James      Auditor
James      Office

The problem with the many to many table in the query for the rowsource of the subform is many results come up because the unique results are tainted by the many groups.

The only way I can think to get the correct results in the subform is to change the subforms rowsource depending on whether a group OR person is selected.

Example:  if James is selected one record (james) is shown.  If office selected Jim and James are shown.

Here is the code

Thanks, JOe K.

Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Dim criteriaSQL As String
    
    criteriaSQL = "SELECT DISTINCT lstStatusClass.IO, tblPersonStatus.Comments, tblPersonStatus.DateOut, tblPersonStatus.DateIn, tblPersonStatus.TimeIn, tblPersonStatus.TimeOut, tblPersonStatus.fkPersonID, tblPersonStatus.fkStatusID, tblPersonStatus.StatusDetailsID " & _
                  "FROM lstStatusClass INNER JOIN ((lstPerson INNER JOIN (lstStatus INNER JOIN tblPersonStatus ON lstStatus.StatusID = tblPersonStatus.fkStatusID) ON lstPerson.PersonID = tblPersonStatus.fkPersonID) INNER JOIN (lstGroups INNER JOIN tblPersonGroupDetails ON lstGroups.GroupID = tblPersonGroupDetails.fkGroupID) ON lstPerson.PersonID = tblPersonGroupDetails.fkPersonID) ON lstStatusClass.IO_ID = lstStatus.fkIO "
    If DLookup("[Person]", "lstPerson", "Person = '" & Me.cboPerson & "'") <> "" Then
        criteriaSQL = criteriaSQL & "WHERE (((tblPersonStatus.DateIn)>=Date()) AND ((lstPerson.Person)='" & Me.cboPerson & "'))"
    ElseIf DLookup("[Group]", "lstGroups", "Group = '" & Me.cboPerson & "'") <> "" Then
        criteriaSQL = criteriaSQL & "WHERE (((tblPersonStatus.DateIn)>=Date()) AND ((lstPerson.Person)='" & Me.cboPerson & "'))"
    End If
    
    Me.sbfrmInterface.Form.RowSource = criteriaSQL
    
        
    Me.sbfrmInterface.Requery
[+][-]07.07.2008 at 01:36PM PDT, ID: 21948439

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Access Forms, Microsoft Access Database, Access Coding/Macros
Tags: microsoft, office, access 2003
Sign Up Now!
Solution Provided By: irudyk
Participating Experts: 1
Solution Grade: A
 
 
[+][-]07.07.2008 at 01:45PM PDT, ID: 21948509

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628