打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DAO使用 CurrentDb ACCESS:"对象无效或不再设置"错误

在ACCESS VBA中运行如下代码,会得到运行时错误:对象无效或不再被设置。

Sub CurrentDbFail()
    Dim td As TableDef
    Set td = CurrentDb.TableDefs("Customers")
    MsgBox td.Name '报错'
End Sub
这是由于CurrentDb 函数所返回的对象是临时的,因此td是一个无效的TableDef 对象,在代码中对td的任何后续引用将导致错误。

创建如下例所示的其他对象的代码中执行以下操作:...创建数据库对象变量引用 CurrentDb 函数,而不是直接在 Set 语句中使用 CurrentDb 函数,来创建如下例所示的其他对象的代码中执行以下操作:
启动 Access 并打开示例数据库 Northwind.mdb。
创建一个模块,并键入以下过程:
      Sub CurrentDbSuccess()
         Dim db As Database
         Dim td As TableDef
         Set db = CurrentDb()
         Set td = db.TableDefs("Customers")
         MsgBox td.Name
      End Sub
     

若要测试此过程,在调试窗口中键入下面一行,然后按 ENTER 键:
CurrentDbSuccess
请注意您将收到消息类型的值,该值表示在客户表的名称的客户。
回到顶端
更多信息重现行为的步骤下面的示例将尝试使用 CurrentDb 函数来返回到当前已在 Access 中打开的数据库的指针。因为代码不指派给一个对象变量的该数据库,Cur...重现行为的步骤
下面的示例将尝试使用 CurrentDb 函数来返回到当前已在 Access 中打开的数据库的指针。因为代码不指派给一个对象变量的该数据库,CurrentDb 函数所返回的指针是临时的并设置 TableDef 对象后变为无效。因此,TableDef 对象变量在代码中任何更高版本的引用将导致错误。


启动 Access 并打开示例数据库 Northwind.mdb。
创建一个模块,并键入以下过程:
      Sub CurrentDbFail()
         Dim td As TableDef
         Set td = CurrentDb.TableDefs("Customers")
         MsgBox td.Name
      End Sub
     

若要测试此过程,在调试窗口中键入下面一行,然后按 ENTER 键:
CurrentDbFail
请注意您将收到错误"对象无效或不设定"。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在VB中用DAO实现数据库编程(1)
PowerPoint 多媒体交互课件制作(VBA编程初步)
Excel VBA常用技巧代码解析
err.number的代码表
VBA新手入门篇 - excel函数,excel公式,excel学习,excel基础,ex...
T-SQL存储过程的应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服