- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Access 中遇到了奇怪的情况。通常,Invalid use of Null 错误非常简单 - 将 null 分配给字符串变量或类似变量。但我在一个在我看来不应该发生的地方遇到了错误。这是代码片段:
bch = Form_Akces.txtMaxCisla.BackColor
If Err <> 0 Then Stop
Form_Akces.txtMaxCisla.BackColor = vbYellow
If Err <> 0 Then Stop
DoEvents
If Err <> 0 Then Stop ' This is where I get the error
With qdf_GPsp
发生的情况是,我只是有时会收到此错误,通常只是在我一段时间以来第一次运行代码时。如果我关闭数据库并立即重新打开它,通常不会收到错误消息。它已经让我发疯了很长一段时间,所以我放入了所有这些“If Err <> 0 then Stop”语句,试图追踪它发生的位置。这是一个实时系统,用户知道只需重新启动应用程序,但它是一个庞大的 PIA,启动起来有点尴尬。
有人能想到一些可以尝试或检查的东西吗?我并不是 Access 方面的业余爱好者,但这远远超出了我遇到过的任何东西。为什么 DoEvents 语句应该生成这样的错误超出了我的范围,特别是因为即使在应该生成这样的错误的前面的语句中我也没有做任何事情,它可能会以某种方式“保留”,直到处理器有机会抛出错误。如果我取出 DoEvents,我只会在更远的地方得到相同的错误。 txtMaxCisla 是 Form_Akces 表单上的未绑定(bind)文本字段,从中调用包含此代码的例程。它仅在启动时发生 - 一旦所有内容都加载并运行,这种情况就不会再发生。而且这种情况只是偶尔发生一次 - 我无法检测到任何模式。
它已经持续了几个月,经历了无数次编译、反编译、重新编译、压缩和修复周期,没有明显的变化,除了有时它发生在其他地方,同样没有我能看到的原因。
不走运 - 它仍然崩溃,而且我完全看不出任何原因。现在是代码:
Public Sub ReloadMaxNumbers(tmc As TextBox)
Dim rst As DAO.Recordset, x$, xb$, xe$, bch&
On Error GoTo 0
If Err <> 0 Then Stop
DoEvents
If Err <> 0 Then Stop
...
代码在 DoEvents 之后的第二次测试中停止,并出现相同的错误“无效使用 Null”。我意识到这段代码完全是迟钝的,但这是回溯的结果,试图找到错误的根源。如果没有这个,它就会在路上的某个地方崩溃,并出现同样的错误。目前我想不出还有什么可以尝试的。
最佳答案
我对代码中的 Form_Akces
感到困惑。如果我创建一个名为 Akces
的表单,则该表单的代码模块名为 Form_Akces
。但你说“在 Form_Akces 表格上”。所以我很困惑 Form_Akces
是表单的名称还是表单的代码模块。也许Access也很困惑。
无论哪种方式,既然您说代码位于表单的代码模块中,我建议您用 Me
替换 Form_Akces
编辑:我误解了你的情况。您向我们展示的代码实际上来自另一个代码模块中的过程,而不是表单的代码模块。在这种情况下,我会对外部过程执行类似的操作 DoSomething
:
Public Sub DoSomething(ByRef frm As Form)
bch = frm.txtMaxCisla.BackColor
frm.txtMaxCisla.BackColor = vbYellow
DoEvents
' whatever else you need
End Sub
然后在表单的代码模块中调用 DoSomething:
DoSomething Me
如果 DoSomething
每次仅对单个控件进行操作,则您可以只传递对该控件的引用。
Public Sub DoSomething(ByRef ctl As Control)
此方法将允许 DoSomething
重新用于其他表单,而无需进行任何更改,因为目标表单名称不是“硬连线”到过程中的。此外,如果您重命名 Akces
表单,它也不会中断。在第二种变体中,它还将适应控件名称的更改。
关于ms-access - Ms Access 中的 DoEvents 语句出现 "Invalid use of Null"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9973200/
我正在尝试编写 Access Access 数据库的脚本,以便在命令行上使用。 Access 数据库使用工作组文件进行保护。 Dim oApp, sWGF,myWS Set sApp = Create
我有一个包含数据表的表格。我希望用户能够选择多行,单击按钮并运行一些 sql 查询并对这些行执行一些工作。 查看我的 VBA 代码,我发现如何使用 CurrentRecord 属性 Access 最后
如果我在某个网络位置有 Microsoft Access 2007 数据库,那么可以使用该数据库的客户端计算机的数量是否有限制?客户端不会安装 Access,而是使用 Access Runtime 2
我正在开发一个注册系统。但我收到此错误:You tried to execute a query that does not include the specified expression.. 我正
我有一个产品设计为使用 MS Access 文件作为数据库的桌面产品。 现在,一些用户需要将它安装在几台 PC(比如说 2 或 3 台)上并共享数据库。 我想将 MS Access 文件放在共享文件夹
我接手了一个旧的软件项目,该项目使用 MS Access 数据库来存储数据。但是数据库不会在 Access 中打开,如下所示: "You do not have the necessary permi
我有一个文件夹,里面装满了 100 多个 Access97 文件。我需要将它们全部更新到 Access2003。 我可以手动完成,但使用 VBA 可能会快很多。 有没有人会有一个片段可以做到这一点?或
我正在通过 SQL Server 迁移助手 (SSMA) 将数据从 Access 数据库迁移到 SQL Server。 Access 应用程序将继续与转换为链接表的本地表一起使用。 一个连续的表单在加
我正在通过 SQL Server 迁移助手 (SSMA) 将数据从 Access 数据库迁移到 SQL Server。 Access 应用程序将继续与转换为链接表的本地表一起使用。 一个连续的表单在加
我的公司用 Visual Basic 6 开发了一个应用程序。 该应用程序通过 ODBC 数据源使用 Access 数据库。 Access 数据库是一个扩展名为“.mdb”的文件。 在以下环境中运行应
我一直在尝试让 Microsoft Access 从主 Access 窗口中“退出”,以便我可以隐藏 Access 窗口并仅在桌面上显示表单,以便可以轻松地将其放置在其他应用程序旁边。 起初我发现了一
我想在 access 2010 中使用 access 2000 和 2003 数据库。由于我不想检查一切是否手动工作,我正在寻找一种工具来分析 VBA 代码以查找使用 access 2010 发生的错
所以我有一个 Excel 工作簿,其中有一个很好的 shaperange 对象的全局 map 。通过一些非常简单的代码,我可以更改颜色、将国家/地区集合分组和取消分组为数组等......并且效果非常好
我们希望有大约 35-40 人通过共享驱动器上的脚本写入 Access 数据库。这些指标分解为他们需要每小时写大约 3-7 次。 Access 会支持这一点而不会对我产生影响吗? 是的,我很乐意将其用
我正在寻找一种使用 VBA 代码从外部数据库文件中删除 VBA 模块的方法。名为“myfile.accdb”的外部文件有一个名为“mod1”的模块,我希望能够在单独的项目中使用 VBA 代码删除该模块
我在 Access 2003 数据库(在 Access 2007 中开发)中有三个表单,它们处于父级 -> 子级 -> 孙子级关系中。在子窗体的 'Form_Load' 子窗体中,我设置了孙子窗体的一
MS Access 2007 存在拒绝在设计模式下显示表单的问题。我可以看到表单的代码(如果我查看显示表单的按钮的事件属性),但我看不到作为 GUI 布局的表单。而且,当我尝试从应用程序的主窗口调用此
我编写了代码,使用 Excel 中的下拉列表提供的标准将两个表连接起来,然后将数据返回到电子表格上的特定位置(工作表上已经有标题)。 这在我的机器上和其他机器上使用 MS Access 的机器上都可以
我正在开始构建一个应用程序,该应用程序从给定的根路径开始遍历文件夹结构,并将所有找到的 Access 1997 .mdb 文件转换为较新的 Access 2007/2010 .accdb 格式。但是,
我有一个表单和一个按钮。我想通过单击按钮打开另一个表单,并将参数从父表单传递到子表单(子表单的 RecordSource 有参数)。我该怎么做? 最佳答案 您可以通过引用表单的对象来引用调用表单的任何
我是一名优秀的程序员,十分优秀!