1

DCOUNT と SQL を使用してみましたが、何も機能しません。以下に両方のクエリを貼り付けました。SQL を実行すると、リストボックスに何も表示されません。DLOOKUP を実行すると、「実行時エラー '2001」というエラー メッセージが表示されます。前の操作がキャンセルされました。コンボボックスの名前は ScrubbedList です。テーブルの名前は Scrubbed です。

DCOUNT

Dim strScrubbedValue As String
strScrubbedValue = Me.ScrubbedList
Dim intCountNull As Integer

intCountNull = DCount("*", "Scrubbed", "IsNull" & strScrubbedValue)
Text267 = intCountNull

SQL

Dim strSQL As String
Dim strScrubbedValue As String

strScrubbedValue = Me.ScrubbedList
strSQL = "SELECT Count(*) As CountAll" & strScrubbedValue & " FROM Scrubbed"
strSQL = strSQL + "WHERE" & strScrubbedValue = ""
Me.List265.RowSource = strSQL
4

1 に答える 1

0

試す:

 intCountNull = DCount("*", "Scrubbed", "SomeField Is Null")

コンボの場合:

 intCountNull = DCount("*", "Scrubbed", strScrubbedValue & " Is Null")

文字列を連結するときは、関連するスペースが含まれていることを確認することが重要です。

Dim strSQL As String
Dim strScrubbedValue As String

strScrubbedValue = Me.ScrubbedList
strSQL = "SELECT Count(*) As CountAll " & strScrubbedValue & " FROM Scrubbed"
strSQL = strSQL & " WHERE " & strScrubbedValue & " Is Null"
Me.List265.RowSource = strSQL

Null と長さゼロの文字列 (ZLS) は同じではないことに注意してください。

両方を取得するには、次のように言えます。

    strSQL = strSQL & " WHERE " & strScrubbedValue & " & '' = ''"

VBA の文字列連結子は + ではなく & です。プラス記号は、予期しない null につながる可能性があるため、注意して使用する必要があります。

于 2012-07-16T19:57:53.367 に答える