※ ChatGPTを利用し、要約された質問です(原文:【Access2010】桁数バラバラの日付を統一)
【Access2010】桁数バラバラの日付を統一
このQ&Aのポイント
Access2010において、桁数がバラバラの日付データを統一する方法について解説します。
毎日インポートされる日付データ(csvファイル)において、日付の桁数が異なる場合があり、インポート作業が複雑になります。桁数が違っても同じクエリーで数字8桁に統一する方法を紹介します。
桁数ごとにインポートし、桁数ごとの更新クエリーを実行することで、日付データを数字8桁に統一することができます。また、日付型への更新クエリーを使用することで、日付のフォーマットも統一することができます。
添付画像のような日付データ(ピリオド区切り)があります。
データ(csvファイル)は原則毎日インポートしているので、日付の異なるデータが混在することはほとんどありませんが、まれに多忙・有休などで数日間インポートしなかった場合は混在してしまいます。
その場合は、csvファイルをコピーして桁数ごとにインポート→桁数ごとの更新クエリーを実行し数字8桁にする→更新クエリーで日付型にしています。
<例1:「***.*.*」の場合(日付更新用へ)>
桁数ごとの更新クエリー
→ Left$([日付],4) & "0" & Mid$([日付],6,1) & "0" & Right([日付],1)
<例2:「***.**.**」の場合(日付更新用へ)>
桁数ごとの更新クエリー
→ Left$([日付],4) & Mid$([日付],6,2) & Right([日付],2)
<共通>
日付型への更新クエリー
→ Left$([日付更新用],4) & "/" & Mid$([日付更新用],5,2) & "/" & Right$([日付更新用],2)
実行すべき桁数ごとの更新クエリーを間違えるとインポート作業からやり直さなければならず、非常に面倒です。
桁数が違っても同じクエリーで数字8桁にする方法はありませんか?フィールド・クエリーの追加はいくらでも可能です。
お礼
ご回答ありがとうございました。 お気づきかと思いますが、まずは誤記の訂正をさせて下さい。 「***.*.*」→「****.*.*」、「***.**.**」→「****.**.**」、Right→Right$ >日付を日付型に登録し、日付のままインポート テキストのインポート/エクスポートで変換の種類を「区切り記号付きインポート」にして「日付」フィールドを日付型にするとインポートできなかったのです。 しかし、このご回答を見てふと思い出しました。 このAccessは元々97形式でした。97の場合、データ内容によっては一旦すべてテキスト型じゃないとインポートできないものもあり、今回のような面倒なクエリーを組んでいました。 2010だと「保存済みのインポート操作」機能があるので、フィールドを日付型(S)にしてこの機能で取り込んだところ、見事****/**/**で取り込まれました。 「保存済みのインポート操作」はフィールドの追加・削除をすると再度インポート操作保存をする必要があるのであまり使用していなかったのですが、今回はこれで対応しておきます。 これでクエリーとマクロの数を減らすことができました。ありがとうございました。