运行 4 年后,我的 MS Access 2010 数据库出现 "Invalid use of Null" 错误
After running for 4 years I now get a "Invalid use of Null" error in my MS Access 2010 Database
突然间我开始收到 "Invalid Use of Null"。这现在发生在我的数据库中的许多不相关的查询上。 (微软访问 2010)
其中一个查询背后的 SQL 代码是:
INSERT INTO [Vendor List] ( [Vendor Number], [Vendor Name] )
SELECT [2_Onbase_NewVendors].[Vendor Number], [2_Onbase_NewVendors].[Vendor Name]
FROM 2_Onbase_NewVendors LEFT JOIN [Vendor List] ON [2_Onbase_NewVendors].[Vendor Number] = [Vendor List].[Vendor Number]
WHERE ((([2_Onbase_NewVendors].[Vendor Name]) Is Null));
查询只是寻找缺失的 "Vendor" 并将其添加进去。这在过去几年中一直运行良好。我查看了这两个表,目前没有返回任何空值,因为所有内容实际上都匹配。
我查了参考资料,好像都是对的。没有 "missing" 参考。 运行时间和完整版本都在发生这种情况。我运行正在 Windows 10 上使用完整的 Access 版本,而 运行time 版本上的是 运行正在 Windows 7。我们最近应用了 Microsoft办公室更新,但我在相关更新中找不到任何内容。我花了几个小时上网,但找不到任何相关内容。网上的大多数内容似乎都来自人们创建查询时的内容。我在前端和后端数据库上都有 运行 压缩和修复。
有什么建议吗?
我倾向于说 "Thank Microsoft" - 但查询确实看起来有点古怪:
查询正在从 table 2_Onbase_NewVendors 中选择数据并将其插入 table [Vendor List] - 但仅在 2_Onbase_NewVendors.[Vendor Name] 中是否为空?
这不应该是[Vendor List].[Vendor Number]为空的地方吗? (或供应商名称):
INSERT INTO [Vendor List] ([Vendor Number], [Vendor Name])
SELECT nv.[Vendor Number], nv.[Vendor Name]
FROM 2_Onbase_NewVendors nv LEFT JOIN [Vendor List] vl ON nv.[Vendor Number] = vl.[Vendor Number]
WHERE vl.[Vendor Number] IS NULL
建议您始终使用别名 tables(就像我在这里所做的那样),因为它总能提高清晰度,无论是对您自己还是对必须阅读您的代码的其他人都是如此。
突然间我开始收到 "Invalid Use of Null"。这现在发生在我的数据库中的许多不相关的查询上。 (微软访问 2010)
其中一个查询背后的 SQL 代码是:
INSERT INTO [Vendor List] ( [Vendor Number], [Vendor Name] )
SELECT [2_Onbase_NewVendors].[Vendor Number], [2_Onbase_NewVendors].[Vendor Name]
FROM 2_Onbase_NewVendors LEFT JOIN [Vendor List] ON [2_Onbase_NewVendors].[Vendor Number] = [Vendor List].[Vendor Number]
WHERE ((([2_Onbase_NewVendors].[Vendor Name]) Is Null));
查询只是寻找缺失的 "Vendor" 并将其添加进去。这在过去几年中一直运行良好。我查看了这两个表,目前没有返回任何空值,因为所有内容实际上都匹配。
我查了参考资料,好像都是对的。没有 "missing" 参考。 运行时间和完整版本都在发生这种情况。我运行正在 Windows 10 上使用完整的 Access 版本,而 运行time 版本上的是 运行正在 Windows 7。我们最近应用了 Microsoft办公室更新,但我在相关更新中找不到任何内容。我花了几个小时上网,但找不到任何相关内容。网上的大多数内容似乎都来自人们创建查询时的内容。我在前端和后端数据库上都有 运行 压缩和修复。
有什么建议吗?
我倾向于说 "Thank Microsoft" - 但查询确实看起来有点古怪:
查询正在从 table 2_Onbase_NewVendors 中选择数据并将其插入 table [Vendor List] - 但仅在 2_Onbase_NewVendors.[Vendor Name] 中是否为空?
这不应该是[Vendor List].[Vendor Number]为空的地方吗? (或供应商名称):
INSERT INTO [Vendor List] ([Vendor Number], [Vendor Name])
SELECT nv.[Vendor Number], nv.[Vendor Name]
FROM 2_Onbase_NewVendors nv LEFT JOIN [Vendor List] vl ON nv.[Vendor Number] = vl.[Vendor Number]
WHERE vl.[Vendor Number] IS NULL
建议您始终使用别名 tables(就像我在这里所做的那样),因为它总能提高清晰度,无论是对您自己还是对必须阅读您的代码的其他人都是如此。