請教各位
我有一個表單Form1,內有一個模組
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public connstr As String, sql As String
然後,Form1有按鈕,會去呼叫ActiveX DLL
我的DLL有表單,也會用到資料庫
我想問的是
我開啟Form1後,然後再去呼叫DLL時,那麼我DLL裡的表單,還需不需要宣告
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public connstr As String, sql As String
謝謝各位
我有一個表單Form1,內有一個模組
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public connstr As String, sql As String
然後,Form1有按鈕,會去呼叫ActiveX DLL
我的DLL有表單,也會用到資料庫
我想問的是
我開啟Form1後,然後再去呼叫DLL時,那麼我DLL裡的表單,還需不需要宣告
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public connstr As String, sql As String
謝謝各位
文章標籤
全站熱搜

很容易的問題 你可以把DLL裡的那幾行拿掉 看還能不能編譯出DLL 我想是不行吧
我試是不行,本以為是方法錯誤, 那麼我就是在每個dll那裡,多個Public...那些 謝謝各位
這是設計觀念問題 0.用專案群組測試,可以免編譯,並將 ActiveX DLL 納入除錯範圍。 1.DLL 內要與 Form1共用的是物件時,該怎麼考量? 先不看是否是 DLL ,純粹看物件本身(包含 Form , Class)時,該怎麼引用專案或是執行檔內的共用物件? 一般建議是採用私有變數,透過方法或屬性建立參照。 ex. --- clsTest or frmTest --- Private m_rs As Object (或 ADODB.Recordset) Public Property Set SetRecordset(Byval hObj) Set m_rs = hObj End Property Public Function SomeMethod() With m_rs ... End With End Function ---------------------- ' 程式 With clsTest Set .SetRecordset = rs .SomeMethod Set .SetRecordset = Nothing End With ' 註:直接板上寫的,有些關鍵字可能錯誤 2.DLL 做法 基本上,DLL 做法類似上面,這樣才可以達成封裝完整,若是屬於要散佈用的 DLL 時,當然加上必要的防錯,比如說透過 TypeName 確認傳入的物件是必要的。而上面的程式碼也可以視情況進行調整,比如說把物件設定移到 SomeMethod : ex. --- clsTest or frmTest --- Private m_rs As Object (或 ADODB.Recordset) Public Function SomeMethod(Byval hObj) Set m_rs = hObj With m_rs ... End With End Function ---------------------- ' 程式 With clsTest .SomeMethod rs End With 實際處理就配合狀況調整即可
謝謝你的幫忙 不過.....一句一句的用心的看,上面程式好多意方不太懂它的意思(我程度還不到那裡) 還是很感謝各位的幫忙,謝謝大家