我在Microsoft Access中有一個數據庫,我設計了一個前端。大約有35個表單/子表單,因此有數百個控件。我有整個前端的審計結構,但它需要爲每個文本框控件添加一個標記。給一個給定類型的多個控件分配一個標籤
有沒有簡單的方法來做到這一點?否則,它會非常手動,乏味和耗時。我寧願寫一些代碼,它會自動完成爲所有文本框控件設置標籤的過程。
我在Microsoft Access中有一個數據庫,我設計了一個前端。大約有35個表單/子表單,因此有數百個控件。我有整個前端的審計結構,但它需要爲每個文本框控件添加一個標記。給一個給定類型的多個控件分配一個標籤
有沒有簡單的方法來做到這一點?否則,它會非常手動,乏味和耗時。我寧願寫一些代碼,它會自動完成爲所有文本框控件設置標籤的過程。
您可以在一個單一的形式使用下面的代碼:
Public Sub AssignTag()
Dim control As Variant
For Each control In Me.Controls
If control.ControlType = acTextBox Then
control.Tag = "MyTag"
End If
Next
End Sub
然後,你必須打開佈局視圖的形式,改變的東西,保存表單,並可能改回事情,使更改棒(使用VBA更改控件不會持續,除非您在佈局視圖中進行額外更改)。
循環通過AllForms
,在設計模式下打開每個Form
,設置標籤爲全部TextBox
控件,保存並退出。
Public Sub SetControlsTag()
On Error GoTo ErrProc
Dim obj As AccessObject, frm As Form, ctl As Control
For Each obj In CurrentProject.AllForms
'Open in design mode
DoCmd.OpenForm CurrentProject.AllForms(obj.Name).Name, acDesign
Set frm = Forms(obj.Name)
'Set tags
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox Then ctl.Tag = "Whatever..."
Next ctl
'Close
DoCmd.Close acForm, frm.Name, acSaveYes
Set frm = Nothing
Next obj
Leave:
Set frm = Nothing
On Error GoTo 0
Exit Sub
ErrProc:
MsgBox Err.Description
Resume Leave
End Sub
該標籤只是一個像所有控件的「tag_name」字符串? –
代碼可以在Forms集合中循環,在設計視圖中打開,循環遍歷Controls集合,設置Tag屬性,關閉並保存表單。你想爲所有控件(標籤,子表單,行等)設置標籤嗎?當你開發有問題的代碼時,發佈一個問題。無論這是否只是「一點點代碼」和更容易取決於你的編程技巧。像Rick Fisher的Find and Replace這樣的第三方工具也許能夠完成。成本約35美元。 – June7