范圍和對象命名的兼容性

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

Visual Basic 的范圍規(guī)則將影響為對象、模塊過程選擇的名稱。

同名的模塊和其他對象

在命名模塊時,應(yīng)避免將模塊的名稱以 Form_ 或 Report_ 開頭,因為以此方式命名模塊,會與那些為窗體和報表編寫的已有的代碼發(fā)生沖突。

如果在一個應(yīng)用程序中有一個模塊,而該應(yīng)用程序是在 Microsoft Access 的 1.x 或 2.0 版本中創(chuàng)建的,這些版本不遵循上述命名規(guī)則,那么試圖轉(zhuǎn)換該應(yīng)用程序時,Microsoft Access 將產(chǎn)生錯誤。例如,Microsoft Access 1.x 或 2.0 版數(shù)據(jù)庫中的名為 Form_Orders 的模塊將導(dǎo)致出錯,在轉(zhuǎn)換該模塊之前,Microsoft Access 會要求對模塊重命名。

同名的模塊和過程

雖然不建議這種用法,但還是可以使用與模塊同名的過程。若要在應(yīng)用程序的表達式中調(diào)用該過程,必須使用過程的完整名稱,包括模塊名稱和過程名稱,如下例所示:

IsLoaded.IsLoaded("Orders")

注釋  在宏的 Runcode 操作中這種方法不可用。宏不能訪問與模塊同名的過程。

同名的過程和控件

如果從窗體調(diào)用一個過程,而該過程與窗體上的控件同名,則必須使用過程所在的模塊的名稱來完整地標識該過程。例如,要調(diào)用名為 PrintInvoice 的過程,該過程保存在名為 Utilities 的標準模塊中,而在相同的窗體上有一個名為 PrintInvoice 的按鈕,則當(dāng)從窗體或窗體模塊中調(diào)用該過程時,應(yīng)使用完整的名稱 Utilities.PrintInvoice

名稱相似的控件

如果一個控件名稱與已有的控件名稱只差一個空格或符號,那么不能使用該控件名稱。例如,如果已有名為 Last_Name 的控件,就不能使用名為 Last Name 或 Last+Name 的控件。

與類型庫同名的模塊

類型庫同名的模塊是不能保存的。如果試圖使用 ADO、Access、DAO 或 VBA 等名稱保存模塊,將得到錯誤消息,該消息表明這個名稱與已有模塊、工程或對象庫的名稱沖突。類似地,如果已經(jīng)設(shè)置了對另一類型庫(如 Microsoft Excel 類型庫)的引用,就不能使用 Excel 作為名稱來保存模塊。

與方法同名的字段

如果表中的字段名與 ADO Recordset 對象上的 ActiveX 數(shù)據(jù)對象 (ADO) 方法或 Recordset 對象上的數(shù)據(jù)訪問對象(DAO)方法的名稱相同,則不能用 .(點)語法引用記錄集內(nèi)的相應(yīng)字段。而必須使用 !(驚嘆號)語法,否則 Microsoft Access 將產(chǎn)生錯誤。下面的示例顯示如何引用在 Contacts 表上打開的記錄集內(nèi)的 AddNew 字段:

ADO

Dim rst As New ADODB.Recordset

rst.Open "Contacts",CurrentProject.Connection, _

    adOpenKeySet,adLockOptimistic

Debug.Print rst!AddNew

DAO

Dim dbs As Database, rst As DAO.Recordset

Set dbs = CurrentDb

Set rst = dbs.OpenRecordset("Contacts")

Debug.Print rst!AddNew

與 Visual Basic 函數(shù)同名的模塊

如果使用與 Visual Basic 固有函數(shù)相同的名稱保存模塊,那么試圖執(zhí)行該函數(shù)時,Microsoft Access 將產(chǎn)生錯誤。例如,以 MsgBox 作為名稱保存模塊后,當(dāng)試圖運行一個調(diào)用 MsgBox 函數(shù)的過程時,Microsoft Access 將顯示“調(diào)用的是變量或程序,而不是模塊”的錯誤消息。

與對象同名的模塊

如果舊版本 Microsoft Access 創(chuàng)建的數(shù)據(jù)庫中包含一個模塊,該模塊與 Microsoft Access 對象、ADO 對象或 DAO 對象具有相同的名稱,那么在轉(zhuǎn)換數(shù)據(jù)庫時,可能會遇到編譯錯誤。例如,名為 Form 或 Database 的模塊將引起編譯錯誤。要避免這些錯誤,必須重新命名模塊。

命名表達式中使用的字段或與窗體和報表上的控件綁定的字段

當(dāng)在表中創(chuàng)建一個字段,而該字段將綁定到報表上的控件,或用在控件或報表的 ControlSource 屬性的表達式中時,要避免字段的名稱與 Application 對象的方法相同。若要查看 Application 對象的方法列表,請在模塊“設(shè)計”視圖中,單擊“視圖”菜單上的“對象瀏覽器”,單擊“工程/庫”框中的 Access,然后單擊“類”框中的 Application,在“成員”框中查看 Application 對象的方法。

當(dāng)在表中創(chuàng)建一個字段,而該字段將綁定到窗體或報表上的控件時,不要將字段名稱指定為下列名稱:AddRef、GetIDsOfNames、GetTypeInfo、GetTypeInfoCount、Invoke、QueryInterface、Release。

與 Visual Basic 關(guān)鍵字同名的標識符

Microsoft Access 97(或更高版本)使用的 Visual Basic 版本中包含一些新的 Visual Basic 關(guān)鍵字,不能使用這些關(guān)鍵字作為標識符。這些關(guān)鍵字是 AddressOfAssert、Decimal、DefDecEnum、Event、Friend、Implements、RaiseEventWithEvents。當(dāng)轉(zhuǎn)換用 Microsoft Access 舊版本開發(fā)的數(shù)據(jù)庫時,與新的 Visual Basic 關(guān)鍵字同名的標識符將引起編譯錯誤。若要更正這些錯誤,必須重新命名標識符。

使用與 Microsoft Access 對象同名的項目

項目名稱是一個字符串,代表 Microsoft Access 應(yīng)用程序的名稱。在舊版本的 Microsoft Access 中,項目名稱就是數(shù)據(jù)庫的名稱。自 Microsoft Access 2000 開始,項目名稱由 ProjectName 屬性設(shè)置指定,該屬性的默認設(shè)置即為數(shù)據(jù)庫的名稱。如果要轉(zhuǎn)換的數(shù)據(jù)庫與某一類對象具有相同的名稱,例如 application、form 或 report,Microsoft Access 將在數(shù)據(jù)庫名稱后面追加一個下劃線字符,來創(chuàng)建不與已有對象沖突的項目名稱。