- 締切済み
エラ-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に 返したいのですが、どうすればよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nishi6
- ベストアンサー率67% (869/1280)
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 で対応 と色々あるようです。。。ご参考に。
- kirara_pika
- ベストアンサー率33% (102/305)
TextBoxのTextはあくまで文字列です。 文字列にNullという値は代入できないと思います。 文字列には""(ダブルクオーテーション)がつきます。 それで、Null値は、""(ヌルストリング)にすることが必要です。 If Tname.Fields(0).Value=Null Then TextBox1.Text = "" End If ↑ 例えば、こんなのです。
お礼
ありがとうございます、試してみます。
お礼
ありがとうございます、試してみます。