2
我想弄清楚如何從Access數據庫中的Access數據庫中從我啓動代碼的位置獲取表單,控件和屬性數據。我已經想出瞭如何從數據庫中獲取數據,但我無法弄清楚如何從數據庫之外的表單獲取數據。從不同的數據庫中獲取表單,控制和屬性數據
我認爲,如果我將外國數據庫設置爲當前數據庫,我的代碼將工作。但是,在執行「For AppAccess.Forms中的每個frm」之後,光標將轉到「End Sub」。
我試着使用容器,我能夠返回表單名稱,但我無法弄清楚如何遍歷控件和屬性集合。
下面是我的第一個想法相關的代碼。我的最終目標是能夠將表單數據保存在不同的數據庫中。我的代碼中是否有小錯誤,或者是否有其他方法可用於獲取數據?
Sub GetControlForm()
Dim strPath As String
Dim frm As Form
Dim ctrl As Control
Dim prop As Property
Dim appAccess As New Access.Application
Dim dbs As DAO.Database
strPath = "C:\Users\Tyrone\Desktop\Test14.accdb"
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase (strPath)
'MsgBox appAccess.CurrentDb.Name
For Each frm In appAccess.Forms
MsgBox frm.Name
For Each ctrl In frm.Controls
MsgBox ctrl.Name
MsgBox ctrl.ControlType.TypeName
MsgBox TypeName(ctrl)
For Each prop In ctrl.Properties
If prop.Name = "RowSource" Then
MsgBox "stop it"
End If
If (TypeName(ctrl) = "ComboBox" Or TypeName(ctrl) = "TextBox") And (prop.Name = "RowSource" Or prop.Name = "ControlSource") Then
MsgBox prop.Value
End If
Next prop
Next ctrl
Next frm
End Sub
你看'CodeDB'和'CurrentDB'和'CodeProject'和'CurrentProject'之間的區別?如果您的代碼位於Access加載項中,則它可以枚舉它本身(codeDB)或當前數據庫中的項目。 – ThunderFrame
我沒有考慮使用CodeDB和CodeProject。截至目前,我想避免必須創建一個加載項。但是,這是進一步研究的好信息。 – user2901516