Prev: Change color of row (Col A thru Col Q) based on text value in Col J
Next: Looping with more than one condition
From: sam on 1 Jun 2010 15:05 Hi All, I have textboxes and comboboxes located in Frame1 and I only want to clear values in Textboxes when a user changes Student_Id field Here is my code so far: Private Sub StudentId_Change() For Each ctl In Me.Frame1.Controls If TypeOf ctl Is TextBox Then ctl.Value = "" End If Next End Sub For some reason the values in textboxes are not cleared, I inserted break points and found out that the control type of Textbox is not identified and hence passes the If statement directly to End if Thanks in advance
From: Paul Robinson on 1 Jun 2010 15:33 Hi Try MSForms.Textbox regards Paul On Jun 1, 8:05 pm, sam <s...(a)discussions.microsoft.com> wrote: > Hi All, > > I have textboxes and comboboxes located in Frame1 and I only want to clear > values in Textboxes when a user changes Student_Id field > > Here is my code so far: > > Private Sub StudentId_Change() > > For Each ctl In Me.Frame1.Controls > If TypeOf ctl Is TextBox Then > ctl.Value = "" > End If > Next > > End Sub > > For some reason the values in textboxes are not cleared, I inserted break > points and found out that the control type of Textbox is not identified and > hence passes the If statement directly to End if > > Thanks in advance
From: GS on 1 Jun 2010 15:49 sam brought next idea : > Hi All, > > I have textboxes and comboboxes located in Frame1 and I only want to clear > values in Textboxes when a user changes Student_Id field > > Here is my code so far: > > Private Sub StudentId_Change() > > For Each ctl In Me.Frame1.Controls > If TypeOf ctl Is TextBox Then > ctl.Value = "" > End If > Next > > End Sub > > For some reason the values in textboxes are not cleared, I inserted break > points and found out that the control type of Textbox is not identified and > hence passes the If statement directly to End if > > Thanks in advance The default property for a textbox is 'Text', so try: ctl.Text = "" regards, -- Garry Free usenet access at http://www.eternal-september.org ClassicVB Users Regroup! comp.lang.basic.visual.misc
From: B Lynn B on 1 Jun 2010 16:13 If you give your controls names that depend on the type of control they are, then you can test the name. I'm not sure if there's a "technically correct" naming convention for the various types, but I name my textboxes with a "tbx" prefix, followed by some word that tells me what data the control is used for. i.e. tbxStudentName, tbxAddr1. Then your test would be: For Each Ctrl in Me.Frame1.Controls If Left(Ctrl.Name, 3) = "tbx" Then Ctrl.Value = "" Next Ctrl "sam" wrote: > Hi All, > > I have textboxes and comboboxes located in Frame1 and I only want to clear > values in Textboxes when a user changes Student_Id field > > Here is my code so far: > > Private Sub StudentId_Change() > > For Each ctl In Me.Frame1.Controls > If TypeOf ctl Is TextBox Then > ctl.Value = "" > End If > Next > > End Sub > > For some reason the values in textboxes are not cleared, I inserted break > points and found out that the control type of Textbox is not identified and > hence passes the If statement directly to End if > > Thanks in advance >
From: john on 2 Jun 2010 03:50
Sam, try it this way: Private Sub StudentId_Change() Dim ctl As Control Dim CtrlType As String For Each ctl In Me.Frame1.Controls CtrlType = TypeName(ctl) If CtrlType = "TextBox" Then ctl.Value = "" End If Next ctl End Sub -- jb "sam" wrote: > Hi All, > > I have textboxes and comboboxes located in Frame1 and I only want to clear > values in Textboxes when a user changes Student_Id field > > Here is my code so far: > > Private Sub StudentId_Change() > > For Each ctl In Me.Frame1.Controls > If TypeOf ctl Is TextBox Then > ctl.Value = "" > End If > Next > > End Sub > > For some reason the values in textboxes are not cleared, I inserted break > points and found out that the control type of Textbox is not identified and > hence passes the If statement directly to End if > > Thanks in advance > |