解決済みの質問
No.1で回答させていただいたものです。
前述のプロシージャの以下の部分は使えないでしょうか?
(テーブル名と数値の部分を書き直しています。)
使えない場合は、その理由を挙げていただけるとありがたいです。
Set rst = CurrentDb.OpenRecordset(対象テーブル名)
Do Until rst.EOF
rst.Edit
For idx = 0 To rst.Fields.Count - 1
If (IsNull(rst.Fields(idx).Value)) Then
rst.Fields(idx).Value = 任意の数字
End If
Next idx
rst.Update
rst.MoveNext
Loop
rst.Close
投稿日時 - 2002-07-25 13:38:04
お礼
ありがとうございます。InStr()とFindFirstを使って作りました。ものすごーーーく時間がかかりますけど・・・(笑)
投稿日時 - 2002-07-29 16:38:49
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(2件中 1~2件目)
Fujjyさんがプログラム上で行うのか、データベースウィンドウで手作業で実行するのかわからないのですが、
数字に置き換えるテーブルに対して、
更新クエリを実行させればいいと思います。
置き換えたいフィールドがNULLのもの、とWHERE句に入れれば・・・。
SQL文の例:
UPDATE テーブル名 SET
フィールド名 = 0 ←置き換えたい数字を右辺に。
WHERE フィールド名 IS NULL
投稿日時 - 2002-07-25 13:10:55
補足
説明不足でした。NULLのあるフィールドを検索してきて、プログラムで任意の数字に置き換えます。お世話になります。
投稿日時 - 2002-07-25 13:14:48
> 置き換えるのは、いくつもNULLがあっても一つでいいのですが・・・。
がどういう意味かがわからないので的外れな回答かもしれませんが、
システムオブジェクトを除く全てのテーブルのデータにある Null を置換するとしたら、こういう風にします。(あくまで私であれば、ですが)
Sub replaceNull2Number()
Dim tbldf As TableDef
Dim rst As Recordset
Dim idx As Integer
Dim num As Integer
num = 0
For Each tbldf In CurrentDb.TableDefs
If (Left$(tbldf.Name, 4) <> "MSys") Then
Set rst = CurrentDb.OpenRecordset(tbldf.Name)
Do Until rst.EOF
rst.Edit
For idx = 0 To rst.Fields.Count - 1
If (IsNull(rst.Fields(idx).Value)) Then
rst.Fields(idx).Value = num
End If
Next idx
rst.Update
rst.MoveNext
Loop
rst.Close
End If
Next
End Sub
投稿日時 - 2002-07-25 13:01:44
補足
すみません、説明不足でした。データからNULLのフィールドを検索してきて、そのNULLに任意の数値をいれます。という意味なんです・・・。説明下手ですみません。
投稿日時 - 2002-07-25 13:12:41
OKWaveのオススメ
おすすめリンク