MS Access VBA、SQL 脚本:In()、<> 和语法

MS Access VBA, SQL Script: In(), <>, AND syntaxes

我有一个脚本需要显示流派并过滤掉空值。

ReturnBooks = "Select * from [Books] where ([Type] IN ('B','K' ,'R' ,'C') AND [Type] <> 'No' AND [BookGenre] IS NOT NULL)) Order By [LName] ASC"

我需要 BookGenre 不为空,但语法 return 没有。最初代码没有那一行,它确实 return 一些结果。

ReturnBooks = "Select * from [Books] where ([Type] IN ('B','K' ,'R' ,'C') AND [Type] <> 'No') Order By [LName] ASC"

return这本书的类型。

我如何在脚本中加入 IS NOT NULL?

例如,书籍 table 会 return 作者姓氏,具体取决于类型。我还从脚本中得到数据类型不匹配。

您的查询中括号不平衡。

并且您需要在您的数据库中显示您 table 的一些示例数据。

让我们检查一下 where 子句: ([类型] IN ('B','K' ,'R' ,'C') AND [类型] <> 'No') AND [BookGenre] 不为空))

如果你的 [Type] 在 ('B','K' ,'R' ,'C') 那么它永远不会是 'No', 所以, "And Type <> 'No'"没用。

"IS NOT NULL" phare 与 mysql、sqlserver 配合良好。

如果你只需要BookGenre不为null的记录,就用这个:

ReturnBooks = "SELECT * FROM [Books] WHERE [BookGenre] IS NOT NULL ORDER BY [LName] ASC"

如果您需要过滤 BookGenre 为空的记录,试试这个:

ReturnBooks = "SELECT * FROM [Books] WHERE ([BookGenre] IS NOT NULL) AND ([BookGenre] <> '')  ORDER BY [LName] ASC"

希望对您有所帮助。