こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

DBNullの使い方。

VB.NETでAccess接続を試みております。
以下のようにコーディングしたのですが、「列'start'をNullに設定できません。DBNullを使用してください。」というエラーが出てしまいました。

Dim myA, myB, myC, myD, myE As Double
Dim sort_id As Integer
Dim start, finish As String
Dim rw As DataRow
Dim t As Integer

t = 14 + 2 * (ii - 16)           
rw = DataSet11.Tables("AttTbl").NewRow  
myA = xlBook2.Sheets.Item(TextBox4.Text).Range("C" & t).Value
myB = xlBook2.Sheets.Item(TextBox4.Text).Range("D" & t).Value
myC = xlBook2.Sheets.Item(TextBox4.Text).Range("E" & t).Value
myD = xlBook2.Sheets.Item(TextBox4.Text).Range("F" & t).Value
myE = xlBook2.Sheets.Item(TextBox4.Text).Range("G" & t).Value
sort_id = xlBook2.Sheets.Item(TextBox4.Text).Range("L" & t).Value
start = xlBook2.Sheets.Item(TextBox4.Text).Range("H" & t).Value
finish = xlBook2.Sheets.Item(TextBox4.Text).Range("H" & (t + 1)).Value
rw.Item("A") = myA
rw.Item("B") = myB
rw.Item("C") = myC
rw.Item("D") = myD
rw.Item("E") = myE
rw.Item("sort_id") = sort_id
rw.Item("start") = start
rw.Item("finish") = finish

対応するテーブルのそれぞれのフィールドの型は以下のとおりです。
A 数値型(単精度浮動小数点型)
B      数値型(単精度浮動小数点型)
C      数値型(単精度浮動小数点型)
D      数値型(単精度浮動小数点型)
E      数値型(単精度浮動小数点型)
sort_id   数値型(長整数型)
start    日付/時刻型
finish   日付/時刻型

ながながと申し訳ありませんが、よろしくお願いいたします。

投稿日時 - 2004-11-05 13:21:54

QNo.1070952

すぐに回答ほしいです

質問者が選んだベストアンサー

Accessなんですか?xlBook2.Sheetsとあるけど・・・
ExcelのデータをAccessに流し込もうとしてるんですかね?
DatasetにはNULLは入れれないので、ExcelのデータがNULLの場合は、DBNullに置き換えてやる必要があります。

投稿日時 - 2004-11-05 13:28:32

お礼

ありがとうございます!
peugeo307さんのいわれるとおり、エクセルデータをアクセスのテーブルに移す作業です。
その逆の作業はうまくいくのですが、エクセル→アクセスはどうもうまくいきません。
最後にアップデートするときもエラーです。
いろいろ調べてDBNullに変換できるようにしてみます。
迅速なご回答、ありがとうございました☆

投稿日時 - 2004-11-05 13:32:44

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

IsDBNull関数を使うとよろしいかと。

投稿日時 - 2004-11-05 16:02:41

お礼

ありがとうございます。
あの~、間違ってたら申し訳ないんですが、
IsDBnull関数は、その値がDBNull属性であるか否かを判断するものではないでしょうか?
とすると、DBNullに変換する前のものを評価しても当然Falseが返ってくるのではと思ったのですが。。。
違ってたらすいません・・・。ぜんぜんわかっていないもので・・・。

投稿日時 - 2004-11-05 16:30:44

あなたにオススメの質問