いつも助けて頂きありがとうございます。
今回は日付型のエラーについて質問があります。
dateserial関数を使って8ケタ数字を日付に変換したのですが、クエリやフィルタでの抽出の時にエラーになってしまいます。
受付日は8ケタの数字型(長整数)になっています。
dateserial(left([受付日],4),mid([受付日],5,2)+1,1)
これを日付でたとえば
#2011/1/1#等で抽出しようとすると型が一致しないエラーが出てしまいます。
isdate(dateserial(left([受付日],4),mid([受付日],5,2)+1,1)
を見ると-1で日付としては認識しているとは思うのですが。
何が原因か、ご助言お願いします。
)
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では上記のクエリは実行可能で該当レコードが選択されましたので、何らかの単純な記載間違いの可能性が高いと思います。
回答ありがとうございます。
皆さんが出来ているのでやはり私のミスでしょう。
それがどこかがなかなか見つかりません・・・
ありがとうございました。
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
返答ありがとうございます。
現在、nullは無いはずです。
受付日には条件でisnotnullで8ケタの数字のみ抽出しています。
他の原因を探しているのですがなかなかわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
実行時エラー 438 の解決策をお...
-
VBA データ(特定値)のある最...
-
レコード登録時に「演算子があ...
-
【Access】Excelインポート時に...
-
「実行時エラー '3167' レコー...
-
演算子が DBnull 及び integer...
-
オブジェクト型の変数にフォー...
-
pythonのopenpyxlについて
-
ExecuteNonQueryメソッドの戻り値
-
マクロの「SaveAs」でエラーが...
-
文字列内で括弧を使うには
-
504-Gateway Timeoutについて
-
ACCESS97 実行時エラー '2455'...
-
Findプロパティを取得できません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
Pythonでの文字列からfloatへの...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
2つほどお聞きしたいことがあり...
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
VBA データ(特定値)のある最...
-
「実行時エラー '3167' レコー...
-
【VB.NET】 パワポ操作を非表示で
-
マクロの「SaveAs」でエラーが...
-
ApplicationとWorksheetFunctio...
おすすめ情報