Access VBA質問箱 IV

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

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


1887 / 2272 ツリー ←次へ | 前へ→

【4785】日付型にnull値入力 smith 05/4/1(金) 11:15 質問[未読]
【4786】Re:日付型にnull値入力 小僧 05/4/1(金) 14:45 発言[未読]
【4788】Re:日付型にnull値入力 クロ 05/4/1(金) 16:26 発言[未読]
【4789】Re:日付型にnull値入力 クロ 05/4/1(金) 17:19 回答[未読]
【4790】Re:日付型にnull値入力 smith 05/4/1(金) 18:12 お礼[未読]
【4791】Re:日付型にnull値入力 小僧 05/4/1(金) 19:44 発言[未読]
【4796】Re:日付型にnull値入力 クロ 05/4/2(土) 9:34 回答[未読]
【4792】Re:日付型にnull値入力 YU-TANG 05/4/1(金) 21:50 発言[未読]

【4785】日付型にnull値入力
質問  smith E-MAIL  - 05/4/1(金) 11:15 -

引用なし
パスワード
   ローカルテーブルAの日付・時刻型フィールドにnull値をinsertするSQL文を実行
するとエラーになってしまいます。別のテーブルBの日付・時刻型フィールドをそのローカルテーブルAにinsertするもので、クエリだとうまくいくのですがADOを使ってやるとエラーになってしまいます。
 日付型なので”#”で囲ってやると、値が入っているレコードはinsertされるのですが、null値にぶちあたるとエラーになります。なのでiif文を使うのですがnull値ならば
何を入力するように書けばいいのでしょう。

下記のような文を試してみましたがダメでした。前後は略しています。

 1. ",#" & IIF(isnull[A],"null",[A]) & "#"
 2. ",#" & IIF(isnull[A],0,[A]) & "#"
 3. ",#" & [A] & "#"

ご回答お願いします。


【4786】Re:日付型にnull値入力
発言  小僧  - 05/4/1(金) 14:45 -

引用なし
パスワード
   ▼smith さん:
クエリで成功するのにADOで実行できないとなると、
ADOの記述のところに問題があるかも…です

>下記のような文を試してみましたがダメでした。前後は略しています。

前後のコードをもう少し記載していただくと
状況がわかり易くなると思われます。

【4788】Re:日付型にnull値入力
発言  クロ  - 05/4/1(金) 16:26 -

引用なし
パスワード
   横レス失礼します。
少なくとも1は間違いです。

> 1. ",#" & IIF(isnull[A],"null",[A]) & "#"

としたらnullという文字が##の間に入りますよ?
""とするかNullとするかではないでしょうか?
1. ",#" & IIf(IsNull([A]),"",[A]) & "#"
1. ",#" & IIf(IsNull([A]),Null,[A]) & "#"

通るか通らないかは分かりませんが...

【4789】Re:日付型にnull値入力
回答  クロ  - 05/4/1(金) 17:19 -

引用なし
パスワード
   よく考えたら
IIf(IsNull([A]),Null,"#" & [A] & "#")
ではないでしょうか?
Nullの時には##が入らないように...

【4790】Re:日付型にnull値入力
お礼  smith E-MAIL  - 05/4/1(金) 18:12 -

引用なし
パスワード
   小僧さんとクロさん、ありがとうございます。

小僧さん、他のフィールドは正常にinsertされるので間違いはないと思います。
クロさん、IIf(IsNull([A]),Null,"#" & [A] & "#") で実行してもダメでした。
なんでクエリは動くんだろ。

【4791】Re:日付型にnull値入力
発言  小僧  - 05/4/1(金) 19:44 -

引用なし
パスワード
   ▼smith さん:
こちらで検証してみたのですが、
ADOで行ってNull値が代入できたので、
smithさんができない理由を考えたのですが…。

1.入力先のフィールドの値要求が「はい」の時
  これはクエリだと成功すると言う事で違うと思われます。

2.DAOの処理である時

もしかしたらこちらかな?と思い、前後のコードがあれば
判断できるかなと思いました。

【4792】Re:日付型にnull値入力
発言  YU-TANG WEB  - 05/4/1(金) 21:50 -

引用なし
パスワード
   こんばんは、YU-TANG です。
横レス失礼します。

> よく考えたら
> IIf(IsNull([A]),Null,"#" & [A] & "#")
> ではないでしょうか?

IIf(IsNull([A]), "Null", "#" & [A] & "#")

…かも。

# 2012 年問題にもご注意を。

【4796】Re:日付型にnull値入力
回答  クロ  - 05/4/2(土) 9:34 -

引用なし
パスワード
   AというのはBテーブルの日付/時刻型フィールドですよね?
両テーブルとも日付/時刻型フィールドなら

IIf(IsNull([A]),Null,[A])だけでいいのでは?

StrSQL = "INSERT INTO Aテーブル ( A )" & _
     " SELECT IIf(IsNull(Bテーブル![A]),Null,Bテーブル![A])" & _
     " FROM Bテーブル;"

1887 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078264
(SS)C-BOARD v3.8 is Free