在VBA代码的“工具”菜单中的“引用”对话框中,引用的优先级别会有时给我们带来一些误会。
比如,在引用中,我们同时引用了“ADO” 和 “DAO”两种对象,如果“ADO”在“DAO”之前,如图,
那么,在代码窗口中声明如下代码
Dim rs As Recordset '此时是ADO的Recordset对象
则这个被声明的 Recordset 对象就是ADO 的Recordset对象了
如果要声明 DAO 的 Recordset 对象,就需要很明显的声明了,如下:
Dim rs As DAO.Recordset
如果引用对话框中,“DAO”的优先级在“ADO”的优先级之前,如图,则刚好相反。
比如,在代码窗口中声明如下:
Dim rs As Recordset '此时是DAO的 Recordset 对象
如果现在想声明ADO的Recordset对象,就需要这样声明了:
Dim rs As ADODB.Recordset
这个问题是,我在网上下的一此示例文件中,示例代码人在声明时,就这样把前面的对象库名称省掉,然后,我下下来用时,老是提示对象打不到成员或数据类型不符的错误。仔细一看,原来就是这个问题了。
我自己觉得,在声明时,还是不要省略那个对象的引用才是个好习惯。