我在MS Access中的VBA中执行了多个SQL存储过程(例如UPDATE,SELECT INTO语句):
CurrentDb.Execute"qry1"
CurrentDb.Execute"qry2"
我希望如此:
*如果qry2失败,它将撤消qry1.
*qry1和qry2同时执行,(因为我在链中执行了许多这些存储过程),因此程序运行得更快.
如何才能做到这一点?
我有一个数据模型,其中包含一个名为 Transactions(如下)的表,以及 TranDate(日期维度)。
我有一个方法来计算数据透视表中可见的第一个日期的期初余额。
Op Bal First Selected :=
VAR MinDate = CALCULATE (
MIN ( TranDates[Tran Date] ),
ALLSELECTED ( TranDates )
)
RETURN
CALCULATE (
SUM ( Transactions[Amount] ),
FILTER
(
ALL ( TranDates ),
TranDates[Tran Date] < MinDate
)
)
Run Code Online (Sandbox Code Playgroud)
如果我取消选择 Jan-16,我会得到以下所需的结果:
但是,该度量仅适用于 Excel 2016,不适用于 Excel 2013,因为 Excel 2013 不支持变量。如果我将 MinDate 变量替换为 DAX 表达式,则该度量将返回空白,因为 ALLSELECTED 会恢复 FILTER() 中的上下文函数而不是 CALCULATE() 函数中的上下文(即 MinDate 是 1-Jan 而不是 1-Feb)。
是否有适用于 Excel 2013 / SSAS 2014 的等效 DAX 公式(即不使用变量)?