• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスのデータ型えらーについて)

アクセスのデータ型エラーについて

このQ&Aのポイント
  • 日付型のエラーについて質問があります。
  • dateserial関数を使って8ケタ数字を日付に変換したのですが、クエリやフィルタでの抽出の時にエラーになってしまいます。
  • 受付日は8ケタの数字型(長整数)になっています。isdate関数を見ると-1で日付としては認識しているとは思うのですが、何が原因かわかりません。

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

SELECT DateSerial(Left([テーブル1]![UDATE],4),Mid([テーブル1]![UDATE],5,2),1) AS 式1 FROM テーブル1 WHERE (((DateSerial(Left([テーブル1]![UDATE],4),Mid([テーブル1]![UDATE],5,2),1))=#1/1/2011#)); 私のacc2000では上記のクエリは実行可能で該当レコードが選択されましたので、何らかの単純な記載間違いの可能性が高いと思います。

tamating
質問者

お礼

回答ありがとうございます。 皆さんが出来ているのでやはり私のミスでしょう。 それがどこかがなかなか見つかりません・・・ ありがとうございました。

その他の回答 (3)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.4

> #2011/1/1#等で抽出しようとすると型が一致しないエラーが > 出てしまいます。 クエリで、演算フィールドに抽出条件や並べ替えを指定したときに 型不一致エラーが出る場合、データが「Null」(空白)になっている レコードがある、というパターンが(私の場合は)多いです。 ですので、まずは「空白」のデータがないか確認してみることを お勧めします。 あった場合の対処法ですが・・・ a)「受付日」が空白のものを除外してよいなら、そのフィールドに  「Is Not Null」の抽出条件をつける b)除外しては問題がある場合は、IIF関数で場合分け:  <一例>  IIF(IsNull([受付日]), Null, DateSerial(Left([受付日],4),Mid([受付日],5,2)+1,1)) c)希望の結果を返すユーザー関数をVBAで定義しておいて、  クエリではそれを使用 ・・・といったところかと思います。 (「c」の利点は、IIF関数だと第1引数の結果に依らず、第3引数の  式が演算されるのに対して、ユーザー定義関数ならIf文の分岐を  使用することで、その演算自体を省略できる(はず)、と:  実際の処理時間に差が生じるかの確認は行っていないので、  事実誤認がありましたらご容赦願います(汗)) Public Function LongToDate(nDate As Variant) As Variant On Error Goto エラー処理   Dim Rsl As Variant   If IsNull(nDate) Then     Rsl = Null   Else     Rsl = DateSerial(Left([受付日],4),Mid([受付日],5,2)+1,1)   End If 終了処理:   LongToDate = Rsl   Exit Function エラー処理:   Rsl = "#エラー(" & Err.Number & ")"   Resume 終了処理 End Function

tamating
質問者

お礼

返答ありがとうございます。 現在、nullは無いはずです。 受付日には条件でisnotnullで8ケタの数字のみ抽出しています。 他の原因を探しているのですがなかなかわかりません。

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.3

試してみましたが、それで特に問題なく処理しますね。 Access2003です。

tamating
質問者

お礼

回答ありがとうございます。 私も受付日以外に発送日等の8ケタ日付があるのですが、受付日を後回しでやってみるとこちらは同じなのに抽出できました。データの抽出も同じなのですが・・・

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

こちらでクエリーを作成して試してみましたがエラーにはなりませんでした。 再度作成しなおしてみてはいかがでしょう。

tamating
質問者

お礼

一度、やってみましたがエラーでした。 おそらくデータにミスがあると思われます。 皆様ありがとうございました。

関連するQ&A

専門家に質問してみよう