Går det att tömma flera textfält i ett formulär med ett kommando? Så här ser koden ut för att tömma alla textrutor i ett formulär: Tackar, första ex fungerar utmärkt!Tömma många textfält?
Har nu ett formulär med väldigt många textfält och vill slippa skrive Text1.Text = "" osv osv.Sv: Tömma många textfält?
Dim ctrl as Control
Dim txt as TextBox
For each ctrl in Controls
If TypeOf ctrl Is TextBox Then
Set txt = ctrl
txt.Text = ""
End if
Next
Alternativt kan du använda dig av en kontroll array.
och loppa igenom på samma vis.
Yterligare ett alternativ är att använda sig av collections. Kan då skapa grupper av kontroller:
Option Explicit
Private mGroups As Collection
Private Sub ClearGroup(Key As String)
Dim Group As Collection
Dim txt As TextBox
Set Group = mGroups(Key)
For Each txt In Group
txt.Text = ""
Next
End Sub
Private Sub Form_Load()
Dim txt As TextBox
Dim ctrl As Control
Dim Group As Collection
On Error GoTo Form_Load_Err
Set mGroups = New Collection
For Each ctrl In Controls
If TypeOf ctrl Is TextBox Then
Set txt = ctrl
Set Group = mGroups(txt.Tag)
Group.Add txt
End If
Next
Form_Load_Exit:
Exit Sub
Form_Load_Err:
Select Case Err.Number
Case 5
Set Group = New Collection
mGroups.Add Group, txt.Tag
Resume Next
Case Else
MsgBox Err.Description, vbCritical
Resume Form_Load_Exit
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set mGroups = Nothing
End Sub
'Tömmer alla textrutor som far Tag = ""
'ClearGroup ""
'Tömmer alla textrutor som far Tag = "Group1"
'ClearGroup "Group1"
'Tömmer alla textrutor som far Tag = "Kunder"
'ClearGroup "Kunder" Sv: Tömma många textfält? - Tackar!
Ska jag föredra ett av de ex du visade?