• 締切済み

エラ-9 ” Null値が不正です!! ”の解消方法は?

Private Sub ComboBox1_Change() Dim db As Database Dim Tname As Recordset Set db = OpenDatabase("c:\Sam1.mdb ", True) Set Tname = db.OpenRecordset("Table1", dbOpenTable) N = ComboBox1.ListIndex Tname.Move N TextBox1.Text = Tname.Fields(0).Value TextBox2.Text = Tname.Fields(1).Value TextBox3.Text = Tname.Fields(2).Value Tname.Close db.Close Set Tname = Nothing Set db = Nothing End Sub エクセルよりmdbファイルを開けて、ComboBoxのリストインデクッス番号 値とmdbのレコ-ド数値が合致することから、各フィ-ルドの値をTextBox に返すプログラムを作りました。デ-タが各フィ-ルドに存在する時はう まくいくのですが、空の時(Null値の時)は”Null値が不正です!!”とい うエラ-がでて止まってしまいます。Null値はNull値として、TextBoxに 返したいのですが、どうすればよいでしょうか?

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

TextBox1を例にして、 (1)  TextBox1.Text = "" & Tname.Fields(0).Value (2)  TextBox1.Text = IIf(IsNull(Tname.Fields(0).Value), "", Tname.Fields(0).Value) (3)  If Not IsNull(Tname.Fields(0).Value) Then    TextBox1.Text = Tname.Fields(0).Value  Else    TextBox1.Text = ""  End If (4)On Error で対応 と色々あるようです。。。ご参考に。

kenchan_h
質問者

お礼

ありがとうございます、試してみます。

回答No.1

TextBoxのTextはあくまで文字列です。 文字列にNullという値は代入できないと思います。 文字列には""(ダブルクオーテーション)がつきます。 それで、Null値は、""(ヌルストリング)にすることが必要です。 If Tname.Fields(0).Value=Null Then TextBox1.Text = "" End If ↑ 例えば、こんなのです。

kenchan_h
質問者

お礼

ありがとうございます、試してみます。

関連するQ&A