gpt4 book ai didi

ms-access - 将表名和字段名作为字符串传递给函数

转载 作者:行者123 更新时间:2023-12-04 14:32:49 24 4
gpt4 key购买 nike

我有一个包含许多表的数据库,我正在尝试检查给定表中的 Null 值。我没有为每个表编写一个函数,而是试图将表名和字段名作为字符串传递给一个函数(以便一个函数适用于所有表)。

我可以用表名完成这个,但不能用字段名。我收到“在此集合中找不到项目”的运行时错误

Public myDb As DAO.Database
Public myTable As DAO.Recordset

Public Sub verifyFields()
checkNull "Table Name", "Field Name"
End Sub


Public Sub checkNull(ByVal tableName As String, ByVal fieldName As String)

Set myDb = CurrentDb
'============
'Table Name | 'Check if Column "Field Name" for null values
'============
Set myTable = CurrentDb.OpenRecordset(tableName)
myTable.MoveFirst
Do Until myTable.EOF
If IsNull(myTable![ & fieldName & ]) Then'<--Error is thrown here
x = x + 1
blanksFound = True
End If
myTable.MoveNext
Loop
If blanksFound = True Then
aaa = MsgBox(x & " Blanks found.", vbOKOnly, blankField.Name)
End If

locals 窗口显示两个字符串都已传递,但我仍然收到运行时错误。我是不是忽略了什么?

最佳答案

要在这些情况下使用变量,请使用括号:

If IsNull(myTable(fieldName)) Then

但请注意,更有效的方法是使用查询:

x = DCount("*", tableName, "[" & fieldName & "] IS NULL")

关于ms-access - 将表名和字段名作为字符串传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51408991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com