Access 2010 テーブルのすべての列のすべての NULLS をカウントできる必要があります。具体的には、30 列 (フィールド) のうち、部分的なデータを含むレコードが大量にあるということです。
テーブル全体で空の数を数えたい。
このサイトの「テーブル内のすべての NULL 値をカウントする方法」というタイトルの記事を読みましたが、それは SQL に言及しており、私には複雑すぎることを認めて申し訳ありませんでした。
誰もがさらに手がかりを得ましたか?
:)
Access 2010 テーブルのすべての列のすべての NULLS をカウントできる必要があります。具体的には、30 列 (フィールド) のうち、部分的なデータを含むレコードが大量にあるということです。
テーブル全体で空の数を数えたい。
このサイトの「テーブル内のすべての NULL 値をカウントする方法」というタイトルの記事を読みましたが、それは SQL に言及しており、私には複雑すぎることを認めて申し訳ありませんでした。
誰もがさらに手がかりを得ましたか?
:)
単一のフィールドの場合、単純なクエリを使用できます。
SELECT Count(*) AS CountOfNulls
FROM MyTable
WHERE some_field Is Null;
1つのクエリで複数のフィールドのNullを個別にカウントする場合は、次のように実行できます。
SELECT
Sum(IIf(some_field Is Null, 1, 0)) AS NullsIn_some_field,
Sum(IIf(another_field Is Null, 1, 0)) AS NullsIn_another_field
FROM MyTable;
列ごとのカウントではなく、すべてのNullの総計が必要な場合は、前のクエリをサブクエリとして使用して、個々の列のカウントを合計できます。
SELECT base.NullsIn_some_field + base.NullsIn_another_field AS total_nulls
FROM
(
SELECT
Sum(IIf(some_field Is Null, 1, 0)) AS NullsIn_some_field,
Sum(IIf(another_field Is Null, 1, 0)) AS NullsIn_another_field
FROM MyTable
) AS base;
OTOH、SQLを完全に避けたい場合、または単にそれらのステートメントが複雑すぎると感じた場合は、SQLを使用する必要はありません。DCount()
この関数はVBAプロシージャで使用できます。
データベース内のテーブルの名前を使用して、イミディエイトウィンドウで以下の手順を実行します。
HowManyNulls "YourTable"
CTRL+gキーボードショートカットを使用してイミディエイトウィンドウに移動できます。
Public Sub HowManyNulls(ByVal pTable As String)
Dim db As DAO.Database
Dim fld As DAO.Field
Dim tdf As DAO.TableDef
Dim lngNulls As Long
Dim lngTotal As Long
Set db = CurrentDb
Set tdf = db.TableDefs(pTable)
For Each fld In tdf.Fields
'lngNulls = DCount("*", pTable, fld.Name & " Is Null")
' accommodate field names which need bracketing ...
lngNulls = DCount("*", pTable, "[" & fld.Name & "] Is Null")
lngTotal = lngTotal + lngNulls
Debug.Print fld.Name, lngNulls
Next fld
Debug.Print "Grand total", lngTotal
Set fld = Nothing
Set tdf = Nothing
Set db = Nothing
End Sub
これらの提案のいずれも満足のいくものではない場合は、質問を修正して、必要なものをよりよく理解できるようにしてください。
事前に列名がわからない場合、テーブルの「すべての列」でこの種のカウントを実行する簡単な方法はありません。
そうする場合は、データベースの「メタデータ」を読み取り、そのデータから列とテーブルのリストを抽出し、列ごとに個別の SQL ステートメントを作成し、そのステートメントを実行して追加するプログラムを作成する必要があります。見つかった NULL 値の現在の合計数に戻ります。
これは、あなたが追求することを検討できるもののように聞こえますか? その場合は、MS Access データベースのテーブルのリストを取得する方法と Access データベースのテーブルの列のリストを取得する方法を検索し、その情報を NULL のカウントに関する質問から既に得ている情報と組み合わせる必要があります。列で。
すべての列のテーブルで null 値をカウントするには:
select count(*) from(select a from tt where a is null
union all
select b from tt where b is null
union all
select c from tt where c is null)