質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1310閲覧

エクセルで空白のセルをAccessに入れると"0"をなる

xyz.

総合スコア17

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/03/26 06:07

前提・実現したいこと

エクセルの値をAccessに登録したい

発生している問題・エラーメッセージ

エクセルで空白のセルをAccessに入れると"0"をなる

該当のソースコード

ExcelVBA

1Do While wb.Worksheets(sht).Cells(2, j).value <> "" 2 .AddNew 3 !DB項目1 = Application.WorksheetFunction.IfError(wb.Worksheets(sht).Cells(1, j).value, "参照エラー") 4 !DB項目2 = Application.WorksheetFunction.IfError(wb.Worksheets(sht).Cells(2, j).value, "参照エラー") 5 !DB項目3 = Application.WorksheetFunction.IfError(wb.Worksheets(sht).Cells(4, j).value, "参照エラー") 6 !DB項目4 = Application.WorksheetFunction.IfError(wb.Worksheets(sht).Cells(3, j).value, "参照エラー") 7 .Update 8 j = j + 1 9Loop

補足情報(FW/ツールのバージョンなど)

Excel 2016
Access 2016

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stdio

2019/03/26 06:18

確実に"0"になるならStrComp等の関数で弾けばいいだけでは?
hatena19

2019/03/26 09:00

フィールドのデータ型はなんでしょうか。 数値型だとしたら、そもそも、"参照エラー" という文字列を代入したらエラーになるはず。 テキスト型(短いテキスト)なら、既定値の初期値は 空白 のはず。 とりあえずフィールドのデータ型が何か追記してください。それと規定値の設定がどうなっているかも。
guest

回答2

0

ベストアンサー

確認してみました。
WorksheetFunction.IfError は未入力セルのValueを参照すると 0 を返す仕様のようです。

イミディエイトウィンドウで実行

vba

1?Activecell.Value = "" 2True 3 4?IsEmpty(Activecell.Value) 5True 6 7?Application.WorksheetFunction.IfError(Activecell.Value, "参照エラー") 8 0 9

Textプロパティで参照すると空文字列("")が返るようです。

vba

1?Activecell.Text = "" 2True 3 4?IsEmpty(Activecell.Text) 5False 6 7?Application.WorksheetFunction.IfError(Activecell.Text, "参照エラー") 8 9 10?Application.WorksheetFunction.IfError(Activecell.Text, "参照エラー")="" 11True

ということで、ValueText にすればどうでしょうか。

フィールドのデータ型は、テキスト型(短いテキスト)という前提での回答です。

投稿2019/03/26 09:17

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xyz.

2019/03/27 00:10

ありがとうございます
guest

0

Accessのテーブルの項目の既定値を確認して下さい。
デフォルトでは、テーブルデザイン時に項目追加すると既定値=0となりますので。
尚、定値を省く場合は、合わせて値要求は「いいえ」である必要があります。

投稿2019/03/26 06:36

編集2019/03/26 06:38
sazi

総合スコア25188

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問