Sql 使用VBA禁用Access中的查询
一位会计部的同事抱怨她如何两次执行一个查询,结果使她的价值翻了一番,她感到困惑。我只是一个初级IT人员,几乎没有VBA经验。我基本上只是尝试添加代码,以使数据库中的查询不能运行多次,除非重新启动数据库。我在考虑做一个布尔检查,看看查询是否已经运行,是否已经运行,不允许再次运行。或者我可以做一个简单的if语句。如果你对这个问题有任何意见,请告诉我Sql 使用VBA禁用Access中的查询,sql,database,ms-access,vba,Sql,Database,Ms Access,Vba,一位会计部的同事抱怨她如何两次执行一个查询,结果使她的价值翻了一番,她感到困惑。我只是一个初级IT人员,几乎没有VBA经验。我基本上只是尝试添加代码,以使数据库中的查询不能运行多次,除非重新启动数据库。我在考虑做一个布尔检查,看看查询是否已经运行,是否已经运行,不允许再次运行。或者我可以做一个简单的if语句。如果你对这个问题有任何意见,请告诉我 我在谷歌上也找不到任何东西。我认为日期和会话ID是每个表中的默认值,您可以对两者的相加进行编码,等等 它们被填充,date=date()作为默认值,se
我在谷歌上也找不到任何东西。我认为日期和会话ID是每个表中的默认值,您可以对两者的相加进行编码,等等 它们被填充,date=date()作为默认值,sessionID是sessionID表中的DMAX,作为所述查询中的额外列 此SessionID表由一个运行宏的启动弹出窗体启动
每个正在操作的表的主键是日期和sessionID,不允许重复。您可能不需要日期,只需要PK中的sessionID 这样的用户实施临时想法并不总是最好的主意 您应该分析这里发生的事情,并确保它不会发生在应用程序设计中,而不是通过任意规则
示例:如果更新查询向账单中添加费用,并且每个账单只能发生一次,则更新查询还应在账单记录中设置“已添加费用”标志。而且它不应该使用此标志集更新账单。您有Access可以用来确定查询是否在当前会话期间运行的功能吗?我认为Access没有内置的功能可以做到这一点。这就是我希望我能编写的代码,但我对VB很差劲,在谷歌搜索时找不到任何类似的场景。我需要检查它是否在会话中运行,如果已经运行,我需要锁定它,直到创建新会话。使用数据宏复制到表,更新表,然后检查是否有当天的条目。您的怀疑是正确的;运行查询时,没有可记录的访问内置功能。如果您的Access版本>=2007,并且您阻止用户直接从导航窗格运行查询,则可以加载
TempVar
以指示何时运行查询。在下一次尝试时,首先检查TempVar
,以决定是否继续。请注意,您需要控制用户运行查询的方式(可能是通过表单上的命令按钮),并使用VBA管理TempVar
,等等。如果我这样做,是否会限制我每天使用一次?我只想让它在一个会议上一次,而不是一天一次。