2017-04-14 40 views
0

在Access數據庫中,我有一個拆分表單。 數據表基於查詢。 查詢的表格有時會在字段中增長。該字段位於查詢中,但不在表單中,因爲必須將其從設計視圖中的「可用字段」拖動到表單中。 當按下表單上的按鈕而不是用戶進入設計視圖時,是否有一些代碼允許將字段添加到表單中?這比每個用戶在設計視圖中打開和編輯(可能打破)數據庫都更方便。預先感謝您的幫助。從表中添加數據字段自動使用vba

+0

你試過的代碼在哪裏? – Masoud

+0

我還沒有 - 我找不到辦法。 – lewis12642

+2

[如何在運行時創建控件訪問VB?]可能的重複(http://stackoverflow.com/questions/31301070/how-to-create-controls-at-run-time-access-vb) – Andre

回答

1

從評論中可以看到,類似的問題已經被問到,所以默認的答案是,即使使用VBA代碼,表單必須處於設計模式才能添加新的控件 - 您無法在Form View中執行此操作。但是,儘管Access的限制仍然需要一個完全合理的需求,但仍然需要一個有用的解決方案。

一個潛在的混亂和有限的解決方案是添加隱藏的未綁定控件(即ControlSource屬性爲空),然後可以在窗體視圖中綁定和顯示。首先,在設計時添加隱藏,未綁定 TextBox和Label控件到表單。以下是按鈕點擊事件處理程序中的一些模板代碼。

Private Sub cmdAddFields_Click() 
    Dim rs As Recordset2 
    Set rs = Me.RecordsetClone 
    Dim fld As Field2 
    ... 
    '* Determine which new fields need to be shown 
    set fld = rs.Fields(missingFieldIndexOrName) 
    ... 
    Me.txtCustom1.ControlSource = fld.Name 
    Me.lblCustom1.caption = fld.Name 
    Me.txtCustom1.Visible = True 
    Me.lblCustom1.Visible = True 
    ... 
End Sub 

應當清楚,你會被限制在你已經添加了這些虛擬字段的數量,它會需要確定丟失的領域是什麼,但可能通過循環來完成的一些巧妙的方式通過rs.Fields集合和表單的Control集合來匹配名稱(例如)。

相關問題