Access中通過VBA程序代碼在Access窗體上動態創建ActiveX控件-高級技巧
- 2017-08-31 15:06:00
- zstmtony 原創
- 7112
Access中通過VBA程序代碼在Access窗體上動態創建ActiveX控件
我們知道在Access中可以通過 Createcontrol 來動態在窗體上創建控件,但大傢有否髮現,創建普通的Access控件是可以的
但是創建Activex或其牠Customcontrol是不行。不管你如何創建,這箇控件總是無法生效或激活的。
CreateControl 創建 AcitveX 控件 是通過 (acCustomControl 蔘數),雖然命令是執行成功瞭,但牠僅僅是創建一箇空的容器(empty container)
Activex控件的屬性 方法 和事件都沒有激活。這是爲什麽呢?
最終幾天不斷的研究和分析,髮現原來是這箇Activex的OleData未填充導緻的。
有2種方法來實現
1.將每種Activex控件的OleData保存在一箇模闆錶中,在需要的時間將這些OleData內容賦給剛創建的Activex控件
2.從其牠窗體或本控件衕類型的Activex控件中複製OleData
2種方法都需要 分彆 對如 Treeview imagelist listview等這些Activex控件分彆處理
以下是使用代碼動態創建Activex控件Treeview樹控件的方法:
Dim frm As Form, ctl As ControlSet Docmd.Openform "我的窗體",acDesign ,,,,acHidden '隱藏打開窗體到設計視圖 frm = Forms("我的窗體") Set ctl = CreateControl(frm.Name, acCustomControl, acDetail, , , 100, 100, 200, 200) ctl.OleData = frm("已存在的樹控件名").OleData '已存在的樹控件名 是已存在當前窗體上或其牠窗體上樹控件
衕樣創建網頁瀏覽器控件也可以通過類似的方法
Dim ctlNew As Access.Control '******************************************** ' 在主體節添加瀏覽器控件 web browser control ' a.) OLE Class: Microsoft Web Browser ' b.) Class: Shell.Explorer.2 '******************************************** Set ctlNew = CreateControl(frmNew.Name, acCustomControl, acDetail) With ctlNew .OLEClass = "Microsoft Web Browser" .Class = "Shell.Explorer.2" .Verb = 0 .Visible = True .OleData = forms("另一箇窗體").controls("WebBrowser2").OleData End With
此知識點相關Access資料
Access VBA教程:OLEData屬性
本主題中的部分內容可能不適用於某些語言。
使用 OLEData屬性可以將未綁定對象框中的數據複製到其他未綁定對象框,或者將ActiveX 控件中的數據複製到其他 ActiveX 控件。
設置
controlname.OLEData
OLEData屬性使用以下設置:
設置 | 説明 |
---|---|
ControlName | 必需。錶示未綁定對象框控件的名稱。 |
OLEData | 必需。錶示未綁定對象框或 ActiveX 控件所包含的數據。 |
OLEData屬性僅在使用 Visual Basic 時纔可用。對於 ActiveX 控件,隻有在“設計”視圖中纔能將其 OLEData屬性設爲其他 ActiveX 控件的 OLEData屬性。
説明
使用該屬性可以在未綁定對象框中顯示其他未綁定對象框中的數據。
如果將 ActiveX 控件的 OLEData屬性設爲其他 ActiveX 控件的 OLEData屬性,則第一箇 ActiveX 控件將成爲第二箇 ActiveX 控件的另一箇實例。例如,下列對屬性進行賦值的代碼將 TreeView 控件改爲 Calendar 控件:
Me!MyTreeViewControl.OLEData = Me!MyCalendarControl.OLEData
- office課程播放地址及課程明細
- Excel Word PPT Access VBA等Office技巧學習平颱
- 將( .accdb) 文件格式數據庫轉換爲早期版本(.mdb)的文件格式
- 將早期的數據庫文件格式(.mdb)轉換爲 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數據庫引擎和訪問連接引擎以阻止對遠程數據庫的訪問(remote table)
- Access 365 /Access 2019 數據庫中哪些函數功能和屬性被沙箱模式阻止(如未啟動宏時)
- Access Runtime(運行時)最全的下載(2007 2010 2013 2016 2019 Access 365)
- Activex控件或Dll 在某些電腦無法正常註冊的解決辦法(regsvr32註冊時卡住)
- office使用部分控件時提示“您沒有使用該ActiveX控件許可的問題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹控件(treeview) 64位Office下齣現橫曏滾動條不會自動定位的解決辦法
- Access中國樹控件 在win10電腦 節點行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹控件 ListView列錶等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調用WebService(直接Post方式)併解析返迴的XML
- 早期PB程序連接Sqlserver齣現錯誤
- MMC 不能打開文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由於文件不存在,不是一箇MMC控製颱,或者用後來的MMC版
- sql server連接不瞭的解決辦法
- localhost與127.0.0.1區彆
- Roych的淺談數據庫開髮繫列(Sql Server)
- sqlserver 自動備份對備份目録沒有存取權限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業管理器 SQLServer2005_SSMSEE
聯繫人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |