2010-06-09 141 views
0

我正在將數據庫系統從Access 2000 db升級到Access 2007,Access 2007通過RS 232串行端口與多個化學測量設備(pH計,刻度等)進行通信。第一個數據庫由幾個包含vba代碼的模塊組成,這些代碼可以實現與端口的通信,並支持第二個數據庫中表單的代碼。用戶或實驗室技術通過第二個數據庫中的表單導航,與實驗室設備進行交互,並生成顯示信息的報告。來自設備。這些報告也是第二個數據庫的一部分。該代碼在Access 2000中起作用,但是一旦我將其轉換爲2007年,第二個數據庫中的代碼無法在第一個數據庫中找到指示屏幕之間進度的函數調用。我已經嘗試將模塊導入到第二個數據庫中,並嘗試將它們鏈接起來,但它仍然無效。錯誤消息是#438:「對象不支持此屬性或方法。」任何建議將不勝感激。在MS Access 2007中鏈接vba模塊

這裏是一個沒有被正確調用第一個函數的代碼:

Description: 
' This routine is used to return to the calling form and close the active form. 
' 
' Input: 
' strFormCalled  --- the active form 
' strCallingForm --- the form that called the active form 
' blnUnhideOrOpen --- whether to open or just unhide form 

Public Sub basReturnToCallingForm(ByVal strFormCalled As String, ByVal _ 
    strCallingForm As Variant, Optional blnUnhideOrOpen As Boolean = True) 

On Error GoTo err_basReturnToCaliingForm 

    If Not basIsBlankString(strCallingForm) And blnUnhideOrOpen Then 
     DoCmd.OpenForm strCallingForm, acNormal 
    Else 
     Call basUnHideForm(strCallingForm) 
    End If 

Call basCloseForm(strFormCalled) 

exit_basReturnToCaliingForm: 
    Exit Sub 
err_basReturnToCaliingForm: 
    Err.Raise Err.Number, "basReturnToCaliingForm", Err.Description 
End Sub 

我將發佈第二個功能不久,但我必須去開會......這ISN第二個功能't'working'是一個cmdStartClick,當用戶初始化一個泵時應該調用它。但是,在這個函數中,它也堅持一條應該前進到db中下一個表單的行。另一件事是,該代碼在Access 2002中工作,但不是在Access 2007中...

這裏是代碼的第二部分,該計劃不斷扼流圈:

Private Sub cmdClose_Click() 

On Error GoTo err_cmdCloseClick 

    Call basReturnToCallingForm(Me.Name, m_strCallingForm, False) 

exit_cmdCloseClick: 
    Exit Sub 
err_cmdCloseClick: 
    MsgBox basGetString(g_clngUnexpectedError, Err.Number, "cmdCloseClick", _ 
    Err.Description), vbCritical, "Unexpected Error" 
Resume exit_cmdCloseClick 
End Sub 

我已經檢查了參考,據我所知,一切都包括在內。自從我上次發佈時,我們已經能夠讓程序在Access 2002中工作,但我們仍然沒有任何運氣與Access 2007 ...

更新10年6月14日:

所以。 ..在用作與電子泵相互作用的GUI(在化學實驗室中分配化學物質)的形式的設計視圖中,應該嵌入ActiveX對象。它不見了。但是,當我嘗試重新插入它時,我收到消息:「OLE服務器未註冊。要註冊OLE服務器,請重新安裝它。」但是,我已經重新安裝了RS232端口的更新驅動程序,而且我仍然收到相同的信息。總之,Access不會讓我插入表單需要的ActiveX控件。所以這是我在星期一上午8:30的地方。如果有人有建議,...我準備好完成這個項目!

+0

你可以發佈引起錯誤的代碼行嗎? – Fionnuala 2010-06-09 20:02:44

+0

兩個數據庫都在可信位置嗎? – 2010-06-09 22:24:39

+0

OP說明「我已經嘗試將模塊導入第二個數據庫...但它仍然不起作用」,這意味着它不是數據庫位置的問題。 – Fionnuala 2010-06-10 00:20:53

回答

1

在VBA代碼編輯器中,選中Tools-> References,看看是否有標記爲MISSING。

2

事實證明,我必須註冊我需要的ActiveX控件,這在Access 2007中有點不同。如果有人感興趣,這裏是鏈接。我使用方法2.感謝您的有用評論。 http://support.microsoft.com/kb/918574