Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5617 / 9994 ←次へ | 前へ→

【7592】Re:Excelからのインポート時に数値がNull...
回答  ゆり  - 06/3/28(火) 23:03 -

引用なし
パスワード
   まさ7251 さん、レスありがとうございます。
説明不足ですみません。

>>  エクセルシートをdrs2として開き、
>
>とは、具体的にどうやっているのですか?

Set dcn1 = CurrentDb
Set drs1 = dcn1.OpenRecordset(a, dbOpenDynaset)

Set dcn2 = OpenDatabase(xFilename, False, False, "Excel 8.0;") 
Set drs2 = dcn2.OpenRecordset(xSheetName)           

というように、開いて(操作して?)います。
xFilename、xSheetNameは複数の同形式のファイル・シートを扱いますので、
取り込むファイル名、シート名は変数で持っています。

>>  If IsNull(drs2.Fields(3)) Or drs2.Fields(3) = "" Then
>Fields(3)とありますけど、
>>商品名・値段と2つのフィールドがあるエクセルデータ
>ではないのですか?


詳しくは、エクセルは 分類・商品名・詳細・値段 のフィールドがあります。

分類 = drs2.Field(0)
商品名 = drs2.Field(1)
詳細 = drs2.Field(2) 
値段 = drs2.Field(3)

>とりあえず、これだけの情報では、原因は思いつきません。

>drs2.Fields(3)
>これに、どのような値が入っているのかを
>確認してみてはどうでしょうか。

プログラム上でデバックをして、値の変化を追っていきましたが、
例えばエクセルには250と入力されている箇所でもNullと判断されています。

問題のエクセルは、いくつかのクライアントに入力してもらい、
その入力してもらったものを取り込むというものです。
元のフォーマットはこちらで作り、勝手に変更できないよう、
入力が必要なセル以外はプロテクトをかけてあります。

実は、中にはきちんとインポートされているものもあります。

エクセル内に何か不要なデータが入力されていないかとも思い、
CSV形式で吐き出し、空白等が入力されていないかも確認しましたが、
特に問題はありませんでした。

また、エクセルは各国から取り寄せているため、入力されたフォントに
問題があるのかとも考えましたが、こちらも問題ありませんでした。

以上のことから、Accessのプログラムがいけないのか、
Excel側がいけないのかすら、分からないのです。

念のためこれからエクセルシートを新しく作り直してみます。

説明が下手で、分かりにくいかもしれません。
また長文になりましたが、どうぞ宜しくお願い致します。

558 hits

【7589】Excelからのインポート時に数値がNullと判断されてしまう ゆり 06/3/28(火) 21:15 質問
【7590】Re:Excelからのインポート時に数値がNull... まさ7251 06/3/28(火) 22:09 発言
【7592】Re:Excelからのインポート時に数値がNull... ゆり 06/3/28(火) 23:03 回答
【7593】Re:Excelからのインポート時に数値がNull... まさ7251 06/3/28(火) 23:32 発言
【7594】Re:Excelからのインポート時に数値がNull... まさ7251 06/3/28(火) 23:39 発言
【7595】Re:Excelからのインポート時に数値がNull... ゆり 06/3/29(水) 0:43 お礼
【7613】Re:Excelからのインポート時に数値がNull... ゆり 06/3/29(水) 18:08 お礼

5617 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free