SubForm not Showing Updated Data

Colby

New member
Local time
Today, 00:40
Joined
Dec 13, 2005
Messages
105
This one is driving me NUTS! I have a form with a combobox, a few textboxes, and a sub-form.
On Load the form is populated with a sql command/rcSet.Fields() results.
The user then chooses a status from the combobox to narrow down the results. The combobox OnChange event looks like this...
sDate = Forms("frm-MENU").txtS_Date.Value
eDate = Forms("frm-MENU").txtE_Date.Value
xJob = Forms("frm-HD/DVR_CC").lstJob.Value

On Error GoTo hd_dvrErr
'this gets the top of the HD/DVR form
sSQL = "SELECT Count(*) AS Total, Sum(IIf([pmt_meth] In ('C','E'),0,1)) AS Error, Sum(IIf([pmt_meth]='C',1,0)) AS [Credit Card], Sum(IIf([pmt_meth]='E',1,0)) AS EFT " & _
"FROM [tbl_HD/DVR_CreditCard(*)] " & _
"WHERE ((([tbl_HD/DVR_CreditCard(*)].CDATE) Between #" & sDate & "# And #" & eDate & "#) AND (([tbl_HD/DVR_CreditCard(*)].JOB_TYPE) Like '" & xJob & "*'));"

Set db = CurrentDb()
Set rcSet = db.OpenRecordset(sSQL)


With Forms("frm-HD/DVR_CC")
.txtTotal.Value = rcSet.Fields(0)
.txtError.Value = rcSet.Fields(1)
.txtCC.Value = rcSet.Fields(2)
.txtEFT.Value = rcSet.Fields(3)
End With

'this gets the bottom or subform of the HD/DVR form
sSQL = "SELECT IIf([Agent]='UNKNOWN','xxxxx',[REP]) AS [Agent ID], [tbl_HD/DVR_CreditCard(*)].Agent, [tbl_HD/DVR_CreditCard(*)].JOB_TYPE, Count(*) AS Total, Sum(IIf([pmt_meth] In ('C','E'),0,1)) AS Error, Sum(IIf([pmt_meth]='C',1,0)) AS [Credit Card], Sum(IIf([pmt_meth]='E',1,0)) AS EFT, Sum(IIf([pmt_meth] In ('C','E'),0,1))/Count(*) AS [Error Rate] " & _
"FROM [tbl_HD/DVR_CreditCard(*)] " & _
"WHERE ((([tbl_HD/DVR_CreditCard(*)].CDATE) Between #" & sDate & "# And #" & eDate & "#)) " & _
"GROUP BY IIf([Agent]='UNKNOWN','xxxxx',[REP]), [tbl_HD/DVR_CreditCard(*)].Agent, [tbl_HD/DVR_CreditCard(*)].JOB_TYPE " & _
"HAVING ((([tbl_HD/DVR_CreditCard(*)].JOB_TYPE) Like '" & xJob & "*')); "

Set qdTemp = db.QueryDefs("qry_HD/DVR")
qdTemp.SQL = sSQL
qdTemp.Close

If Not Forms("frm-HD/DVR_CC").FormFooter.Visible Then
Forms("frm-HD/DVR_CC").FormFooter.Visible = True
Else
'DoCmd.Close acForm, "frm-HD/DVR_CC(Footer)", acSaveNo
End If
DoCmd.OpenForm ("frm-HD/DVR_CC(Footer)"), acNormal, , , , acHidden
Forms("frm-HD/DVR_CC(Footer)").Recalc
Forms("frm-HD/DVR_CC").Refresh
Forms("frm-HD/DVR_CC(Footer)").Refresh
' DoCmd.MoveSize Height:=Forms("frm-HD/DVR_CC(Footer)").WindowHeight + Forms("frm-HD/DVR_CC(Footer)").FormFooter.Height



exit_hd_dvrErr:
Exit Function

hd_dvrErr:
MsgBox Err.Number & "-" & Err.Description
Forms("frm-HD/DVR_CC").FormFooter.Visible = False

Resume exit_hd_dvrErr


End Function



I have used similar code on another form and everytime the search criteria changes the sub form updates to reflect such. I know I am missing something small; can somebody please point it out?:D
I need to have the subform show the updated (choice from combo) criteria.

If this seems to cloudy, please let me know and I will try and revise
 
Colby said:
This one is driving me NUTS! I have a form with a combobox, a few textboxes, and a sub-form.
On Load the form is populated with a sql command/rcSet.Fields() results.
The user then chooses a status from the combobox to narrow down the results. The combobox OnChange event looks like this...
sDate = Forms("frm-MENU").txtS_Date.Value
eDate = Forms("frm-MENU").txtE_Date.Value
xJob = Forms("frm-HD/DVR_CC").lstJob.Value

On Error GoTo hd_dvrErr
'this gets the top of the HD/DVR form
sSQL = "SELECT Count(*) AS Total, Sum(IIf([pmt_meth] In ('C','E'),0,1)) AS Error, Sum(IIf([pmt_meth]='C',1,0)) AS [Credit Card], Sum(IIf([pmt_meth]='E',1,0)) AS EFT " & _
"FROM [tbl_HD/DVR_CreditCard(*)] " & _
"WHERE ((([tbl_HD/DVR_CreditCard(*)].CDATE) Between #" & sDate & "# And #" & eDate & "#) AND (([tbl_HD/DVR_CreditCard(*)].JOB_TYPE) Like '" & xJob & "*'));"

Set db = CurrentDb()
Set rcSet = db.OpenRecordset(sSQL)


With Forms("frm-HD/DVR_CC")
.txtTotal.Value = rcSet.Fields(0)
.txtError.Value = rcSet.Fields(1)
.txtCC.Value = rcSet.Fields(2)
.txtEFT.Value = rcSet.Fields(3)
End With

'this gets the bottom or subform of the HD/DVR form
sSQL = "SELECT IIf([Agent]='UNKNOWN','xxxxx',[REP]) AS [Agent ID], [tbl_HD/DVR_CreditCard(*)].Agent, [tbl_HD/DVR_CreditCard(*)].JOB_TYPE, Count(*) AS Total, Sum(IIf([pmt_meth] In ('C','E'),0,1)) AS Error, Sum(IIf([pmt_meth]='C',1,0)) AS [Credit Card], Sum(IIf([pmt_meth]='E',1,0)) AS EFT, Sum(IIf([pmt_meth] In ('C','E'),0,1))/Count(*) AS [Error Rate] " & _
"FROM [tbl_HD/DVR_CreditCard(*)] " & _
"WHERE ((([tbl_HD/DVR_CreditCard(*)].CDATE) Between #" & sDate & "# And #" & eDate & "#)) " & _
"GROUP BY IIf([Agent]='UNKNOWN','xxxxx',[REP]), [tbl_HD/DVR_CreditCard(*)].Agent, [tbl_HD/DVR_CreditCard(*)].JOB_TYPE " & _
"HAVING ((([tbl_HD/DVR_CreditCard(*)].JOB_TYPE) Like '" & xJob & "*')); "

Set qdTemp = db.QueryDefs("qry_HD/DVR")
qdTemp.SQL = sSQL
qdTemp.Close

If Not Forms("frm-HD/DVR_CC").FormFooter.Visible Then
Forms("frm-HD/DVR_CC").FormFooter.Visible = True
Else
'DoCmd.Close acForm, "frm-HD/DVR_CC(Footer)", acSaveNo
End If
DoCmd.OpenForm ("frm-HD/DVR_CC(Footer)"), acNormal, , , , acHidden
Forms("frm-HD/DVR_CC(Footer)").Recalc
Forms("frm-HD/DVR_CC").Refresh
Forms("frm-HD/DVR_CC(Footer)").Refresh
' DoCmd.MoveSize Height:=Forms("frm-HD/DVR_CC(Footer)").WindowHeight + Forms("frm-HD/DVR_CC(Footer)").FormFooter.Height



exit_hd_dvrErr:
Exit Function

hd_dvrErr:
MsgBox Err.Number & "-" & Err.Description
Forms("frm-HD/DVR_CC").FormFooter.Visible = False

Resume exit_hd_dvrErr


End Function



I have used similar code on another form and everytime the search criteria changes the sub form updates to reflect such. I know I am missing something small; can somebody please point it out?:D
I need to have the subform show the updated (choice from combo) criteria.

If this seems to cloudy, please let me know and I will try and revise


If the underlying tables are related this should be of no problem. If not, you'll need to, by the code, insert values into the subtable by a INSERT INTO query or use the query tool, make the query and set it as the countrolsource of the form.
 
thanks for the direction; I will give it a shot.
The 2 tables are not 'related' in a 1 to 1 meaning; they just show the same type of data. The parent table (actually textboxes) holds rcSet.Fields(x) values. The child table (true table) holds the detail.
I will restructure and see what happens. will post back code that works for anyone who is reading and may need.

Thanks
 

Users who are viewing this thread

Back
Top Bottom