vba - 双击以在访问中输入当前日期/时间
问题描述
我是 VBA 新手,并且有以下代码。双击第一个日期框时,它可以工作,但会给出一个未为第二个日期框定义的错误变量。请指教?
Option Compare Database
Option Explicit
Private Sub CALL1_DATE__DblClick(Cancel As Integer)
CALL1_DATE_ = Now()
End Sub
Private Sub CALL2_DATE_DblClick(Cancel As Integer)
CALL2_DATE_ = Now()
End Sub
解决方案
考虑几个您部分执行的 VBA 编程最佳实践:
在实际运行任何子程序或函数之前,请务必
Debug \ Compile
在更改代码后在 VBA IDE 的菜单栏上运行。这将迫使您处理所有语法或编译错误(即,除了运行时错误之外的所有错误)。就像你已经做的那样,设置
Option Explicit
在代码模块的顶部。这迫使程序员在与调用一起使用之前声明每个变量或对象,Dim
并避免代码运行时的任何副作用。与上述相关,
Dim
用于每个命名对象来定义其范围和类型。Private Sub CALL1_DATE__DblClick(Cancel As Integer) Dim CALL1_DATE_ As Date CALL1_DATE_ = Now() End Sub Private Sub CALL2_DATE_DblClick(Cancel As Integer) Dim CALL2_DATE_ As Date CALL2_DATE_ = Now() End Sub
或者,您可以将它们设置为代码模块顶部子例程之外的私有或公共变量:
Option Compare Database Option Explicit Private CALL1_DATE_ As Date ' SAME AS: Dim CALL1_DATE_ As Date Private CALL2_DATE_ As Date ' SAME AS: Dim CALL2_DATE_ As Date Private Sub CALL1_DATE__DblClick(Cancel As Integer) CALL1_DATE_ = Now() End Sub Private Sub CALL2_DATE_DblClick(Cancel As Integer) CALL2_DATE_ = Now() End Sub
推荐阅读
- python - 图像处理练习和 np.array 索引
- javascript - 反应中功能组件的早期回报
- javascript - 有条件地设置和清除间隔
- next.js - 如何在部署到 Vercel 的 Next js 中禁用目录列表
- spring-boot - 为什么 mvn spring-boot:run 找不到一些 ojdbc8 相关的 jar?
- javascript - 无法在 forEach 方法中返回 thisArg
- scala - sbt 返回依赖问题
- javascript - 考虑随时间的加速度和减速度的对象插值
- python - 对于 leetcode.com 中的问题,如何在自己的 IDE 中正确输入自己的测试用例?
- java - 在itext7中,各种栏目文件或切换栏目文件