对于错误处理代码,我想获取发生错误的当前VBA函数(或子)的名称.有谁知道如何做到这一点?
[编辑]谢谢大家,我曾希望存在一个无证的技巧来自我确定功能,但这显然不存在.猜猜我会继续使用我当前的代码:
Option Compare Database: Option Explicit: Const cMODULE$ = "basMisc"
Public Function gfMisc_SomeFunction$(target$)
On Error GoTo err_handler: Const cPROC$ = "gfMisc_SomeFunction"
...
exit_handler:
....
Exit Function
err_handler:
Call gfLog_Error(cMODULE, cPROC, err, err.Description)
Resume exit_handler
End Function
Run Code Online (Sandbox Code Playgroud) 我在具有4GB RAM的双核机器上使用Access 2003,运行Windows XP(Service Pack 3)[5.1.2600]
我定期收到错误消息"没有足够的内存来执行此操作.关闭不需要的程序并再次尝试操作."
检查任务管理器表示有足够的可用内存.关闭其他开放的程序没有任何区别.
这种情况偶尔发生,并且在不同的情况下:有时在保存表单设计或VBA代码更改时,有时在多个表单打开和使用时.
如果尝试保存设计更改,并且发生此错误,则Access对象已损坏且无法恢复.
任何可能导致这种情况的建议都会受到欢迎.
MTIA
我正在为我的许多表添加一个tsu
类型的列(时间戳更新)DATETIME
.
我需要编写BEFORE UPDATE
将更新列的触发器CURRENT_TIMESTAMP()
,但我无法正确.尝试:
DELIMITER $$
CREATE
TRIGGER `cams`.`tsu_update_csi` BEFORE UPDATE
ON `cams`.`csi`
FOR EACH ROW BEGIN
UPDATE csi SET tsu = CURRENT_TIMESTAMP WHERE csi_code = OLD.csi_code;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
任何人都能指出我正确的方向吗?MTIA
Is there a way to determine the Object type, when passing a reference to a function?
I'm using a security permissions function, which determines if the user has permission to view/edit the Form passed to it by reference. I'd like to expand this to include reports as well.
To keep the function generic, I'd like to pass a ref for either a Form or a Report as an Object, eg:
function gfSecurity_Permission(obj as Object)
但是,我需要确定type
函数中的对象.
有谁知道这样做的方法?
MTIA
我正在维护并偶尔修改Access 97程序,这对于一家非常大的美国公司来说仍然是一个至关重要的部门工具.
许多报告使用"总计"子报表,我无法使用LinkChildFields\LinkMasterFields链接.在每种情况下,主报告都可以通过"报告管理器"表单按多种(或没有)标准进行过滤.
我通过使用在设计视图中打开任何子报表的通用函数来处理此问题,并编辑.Filter属性.100%正常工作.
但是,这会阻止我将应用程序作为.mde文件分发,因为设计视图在mde中不可用.
我已经尝试了我能想到的每一种选择:
虽然这个"旧"应用程序非常适合部门使用它,但他们的IT部门希望实施"全局解决方案",而且我真的不希望竞争对手免费获得大量复杂业务规则.多年来一直努力工作.
有没有人对子窗体过滤有任何建议,所以我可以使用mde?
MTIA