
No.3ベストアンサー
- 回答日時:
すべての標準テーブルのすべてのフィールドに対しNullなら0に置き換えてます。
(フィールドタイプは見てません。)そもそもNull許可しているのならNullがあってもよいように処理設計すべきだし、
0でなくてはならないのならNullを許可しないようにすべきです。
----
Sub mColGet()
Dim CAT As ADOX.Catalog
Dim TB As ADOX.Table
Dim CL As Column
'接続
Set CAT = New ADOX.Catalog
CAT.ActiveConnection = CurrentProject.Connection
'検索
For Each TB In CAT.Tables
If TB.Type = "TABLE" Then
For Each CL In CAT.Tables(TB.Name).Columns
Call mZeroSet(TB.Name, CL.Name)
Next CL
End If
Next TB
'終了
Set CAT = Nothing
End Sub
Sub mZeroSet(strTable As String, strCol As String)
Dim cn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim SQL As String
'接続
Set cn = CurrentProject.Connection
'更新
SQL = "UPDATE " & strTable & " SET " & strCol & " = 0 WHERE " & strCol & " Is Null "
cn.Execute (SQL)
'終了
cn.Close
Set cn = Nothing
End Sub
確かに設計に問題がありますよね。。
ご指摘いただいたとおりだと思います。
なぜそのようなNULLデータがうまれるかというと、
その一つ前のクエリでピボットテーブルを使っていて、
(その結果をINにして再度実行しているクエリで
SUMを使っているため、NULLは入ってきてはこまるのですが)
どうしても存在しないデータにはNULLが入ってきてしまうのです。
これを0とする方法が私には思いつきませんでした。
今回は別のページで見つけたNZという関数で対応しました。
教えていただいた方法もとてもわかりやすいので、
次回はこちらで試してみたいと思います。
お手数をおかけしてすみません。。
ありがとうございました!
No.2
- 回答日時:
更新クエリを使います。
UPDATE テーブル1 SET フィールド1 = 0
WHERE フィールド1 Is Null;
この回答への補足
これだと、フィールド1が指定されてしまいますよね?
データの中にはかなりの行と列のNULLデータがあるので、
フィールドは指定したくないのですが・・・。
No.1
- 回答日時:
1.EXCELに全データを貼り付ける
2.NULL(空白)セルを「0」に置き換える
⇒置換
3.置き換えたEXCELデータをコピー
4.コピーしたデータをACCESSのテーブルに貼り付ける
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
AccessでのNullと長さ0の文字列につきまして
Access(アクセス)
-
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
-
4
「#エラー」の回避
Access(アクセス)
-
5
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
6
100万レコード規模のaccessDBテーブルからNullを置換する方法
その他(データベース)
-
7
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
8
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
9
最新日のデータのみ抽出するクエリを教えて下さい
Access(アクセス)
-
10
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
11
Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSで400以上のフィールドが...
-
accessのレポートで元になるテ...
-
INSERT INTO ステートメントに...
-
【Access】フォームで自動計算...
-
SQLServer2005のSQL文での別名...
-
Accessの構造(テーブル名など...
-
accessで重複を防ぎたい
-
ACCESSでテーブルのチェックを...
-
Access 昇順・降順で並び替え...
-
主キーはオートナンバー型のID...
-
ACCESS.ルックアップの値以外...
-
ExcelのデータをコピーでACCESS...
-
Accessで、固定アルファベット+...
-
アクセス A列コピー B列貼り...
-
ACCESSのフォームでアルファベ...
-
ACCESS VBAにてCSV...
-
ACCESSでの改行コード
-
フィールド数の多すぎる・フィ...
-
Accessのフィールド数が255しか...
-
アクセス メモ型 255文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INSERT INTO ステートメントに...
-
SQLServer2005のSQL文での別名...
-
accessのレポートで元になるテ...
-
Accessのフィールド数が255しか...
-
Accessでテーブルの値をテキス...
-
ACCESSで400以上のフィールドが...
-
ExcelのデータをコピーでACCESS...
-
ACCESSで和暦を西暦に・・・
-
Accessで、固定アルファベット+...
-
ACCESSでの改行コード
-
ACCESSでテーブルのチェックを...
-
【Access】フォームで自動計算...
-
アクセス メモ型 255文字...
-
ACCESSでオートナンバーを任意...
-
アクセス エラーを数値「0」に...
-
主キーはオートナンバー型のID...
-
固有レコード識別子の選択とは??
-
accessで重複を防ぎたい
-
Access:リンクテーブルマネー...
-
Access 昇順・降順で並び替え...
おすすめ情報