| re: How to save changes to form property in VBA?
> You have to open the form in design mode to do this.
ah yes... I see...
Here's the complete code if anyone is interested. I'm not sure if I need to
close the forms after opening them in Design mode - but it has not barfed on me
yet...
Public Sub Change()
On Error GoTo HandleErr
Dim lngC As Long
Dim varF As Variant
lngC = DLookup("Color", "tblColors")
For Each varF In Array("frm0", "frm1", "frm2", "frm3")
DoEvents 'this is important
If DLookup(varF, "tblColors") = -1 Then
DoCmd.OpenForm varF, View:=acDesign, WindowMode:=acHidden
Forms(varF).Detail.BackColor = lngC
Select Case varF
Case "frm0"
With Forms("frm0")
.lstAddress.BackColor = lngC
.NextAppt.BackColor = lngC
.txtTxCt.BackColor = lngC
.cbxCategory.BackColor = lngC
.txtFilterDisplay.BackColor = lngC
.txtRecordsFound.BackColor = lngC
.txtFindEid.BackColor = lngC
.Entity_ID.BackColor = lngC
End With
DoCmd.Save acForm, varF
DoCmd.Close acForm, varF
DoCmd.OpenForm "frm0Address", View:=acDesign,
WindowMode:=acHidden
Forms("frm0Address").AddressString.BackColor = lngC
Forms("frm0Address").Detail.BackColor = lngC
DoCmd.Save acForm, "frm0Address"
DoCmd.Close acForm, "frm0Address"
Case "frm1"
With Forms("frm1")
.txtTotalCriteria.BackColor = lngC
.txtTotalHeader.BackColor = lngC
.txtQ1Title.BackColor = lngC
.txtQ2Title.BackColor = lngC
.txtQ3Title.BackColor = lngC
.txtQ4Title.BackColor = lngC
.txtTotalPending.BackColor = lngC
.cbxMonthPending.BackColor = lngC
.txtMonthPending.BackColor = lngC
.txtNameHeader.BackColor = lngC
End With
DoCmd.Save acForm, varF
DoCmd.Close acForm, varF
Case "frm2"
With Forms("frm2")
.txtTotalPending.BackColor = lngC
.cbxMonthPending.BackColor = lngC
.txtMonthPending.BackColor = lngC
End With
DoCmd.Save acForm, varF
DoCmd.Close acForm, varF
Case "frm3"
With Forms("frm3")
.TypeTotalsString.BackColor = lngC
.txtQuarterString.BackColor = lngC
.TypeTotalsString.BackColor = lngC
.txtQ1.BackColor = lngC
.txtQ2.BackColor = lngC
.txtQ3.BackColor = lngC
.txtQ4.BackColor = lngC
End With
DoCmd.Save acForm, varF
DoCmd.Close acForm, varF
End Select
DoCmd.OpenForm varF
End If
Next
Exit_Here:
Exit Sub
HandleErr:
Select Case Err.Number
Case Else
modHandler.LogErr ("modColor"), ("Change")
Resume Next
End Select
End Sub |