【发布时间】:2015-10-20 15:45:24
【问题描述】:
我正在尝试创建一个查询,从 VBA 函数添加一个新的计算字段
我有一个名为QLIK的现有表
要计算新字段,我需要两个名为 SOCIETA 和 UNBUNDLING 的现有字段,它们包含在表 QLIK 中。
它被称为 WBS 的新字段,我在 VBA 例程中使用 SWITCH Function(但我猜使用一些嵌套的 IIF 会是相同的),因为有太多参数来使用代码创建字段buldier 直接在查询中
然后我从如下 SQL 语句中调用它:
SELECT fieldA, fieldB,…, GetWBS() AS WBS_C
FROM QLIK;
目前我有以下(简化的)代码:
Public Function GetWBS() As String
Dim WBS As String
Dim cdb As DAO.Database
Dim Q As Recordset
Dim SOCIETA As Field, UNBUNDLING As Field
Set cdb = CurrentDb
Set Q = cdb.OpenRecordset("QLIK")
Set SOCIETA = Q.Fields("SOCIETA")
Set UNBUNDLING = Q.Fields("UNBUNDLING")
While Not Q.EOF
GetWBS = Switch( _
[SOCIETA] = "Company 1" And ([UNBUNDLING] = "U1"), WBS = "AAA", _
[SOCIETA] = "Company 1" And ([UNBUNDLING] <> "U1"), WBS = "BBB", _
[SOCIETA] = " Company 2", WBS = "CCC", _
[SOCIETA] = " Company 3", WBS = "DDD")
Q.MoveNext
Wend
Q.Close
End Function
但我收到“运行时错误 94 无效使用 null”。我尝试将 GetWBS() Function 和变量 WBS 指定为 Variants,但我在新列中只得到零。
对我的代码有什么问题或其他方法有什么想法吗?
谢谢
【问题讨论】:
标签: mysql ms-access vba ms-access-2013