Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルインポート後の日付変換
記事No16638
投稿日: 2011/05/02(Mon) 11:57
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
参照先http://www.asoyakusouen.com/
OS:XP sp3
Access Version:2007
Access初心者です。よろしくおねがいします。受注管理で商奉行を使ってます。
データをCSVで書き出してAccessのテーブルにインポート出来ました。
なんとか使えそうです。
ただひとつ壁が。商奉行で受注日付けが 23年 4月 25日 の形式で入力されており、
インポート後のAccessテーブルフィールドには、「□23□□4□25」の型式テキスト型で
読み込まれております。
(□はスペース)これをyyyy/yy/yyの日付けの型式に一括変換させたいのですが、
隣りに新たにフィールドを挿入して式ビルダを使えばできますか?その際の式はどのようなものでしょうか?
マクロやVBAになれば、知識が全くなくお手上げです。

この日付けの変換問題さえクリアできたら、あとは、購入履歴を抽出して、DM、TELマーケティングフォローに
活用しようとかんがえてます。

どうぞ、お知恵を貸して下さい。

タイトルRe: インポート後の日付変換
記事No16639
投稿日: 2011/05/02(Mon) 12:06
投稿者ふじ
解決済: ON
> ただひとつ壁が。商奉行で受注日付けが 23年 4月 25日 の形式で入力されており、
> 活用しようとかんがえてます。
エクスポート先の書式の変更とかできない?

タイトルRe: インポート後の日付変換
記事No16640
投稿日: 2011/05/02(Mon) 12:22
投稿者ふじ
解決済: ON
> ただひとつ壁が。商奉行で受注日付けが 23年 4月 25日 の形式で入力されており、
> インポート後のAccessテーブルフィールドには、「□23□□4□25」の型式テキスト型で
> 読み込まれております。
> (□はスペース)これをyyyy/yy/yyの日付けの型式に一括変換させたいのですが、
クエリで考えてたんだけど 

23年のときは2011とか変換するため IIF関数とか使ってクエリの構文を組み立てたけど
残りの月のときとかをクエリとかで組んでたらたくさんのクエリになって大変な労力を使います

なんでエクスポート先の書式変換をさせて アクセス側でFORMAT関数とかで日付に直す
せめて20110401とかでエクスポートさせてアクセスで2011/04/01にする方法はVBAやマクロでなくてもできます、クエリで簡単に 
なのでもう一度確認してみてください それでもダメなら考えて見ます VBA、マクロを使わない もしくは使わせない制限付のお仕事として^^
追加 2011・05.02 
インポートデータ 一行分投稿してみて^^
それから考える

タイトルRe^2: インポート後の日付変換
記事No16643
投稿日: 2011/05/03(Tue) 00:03
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
こんな難しいの誰も答えてくれないだろう。と思ってた自分が浅はかでした。
出先で、帰宅したのが23時過ぎで、返信おそくなってすみません。自宅にパソコン置いてまして職場にはACCESS入ってないのです。
帰宅していろいろためしたのですが、式を教えてくださっても、どこにどう記入すればよいかわかりませんでした。ファイルのアップロードもこのサイトでどのようにするか、探しましたが、ちょっとわかりません。あつかましいのですが、メールで添付で送らせていただきたいのですが、メールアドレスを教えていただけませんか?わたしは
crystalartsalpha@gmail.com
です。
ご親切にありがとうございます。
また、Resくださっても、返信が深夜になってしうと思います。お許しください。
厚かましいお願いですが、よろしくお願いします。

タイトルRe^3: インポート後の日付変換
記事No16653
投稿日: 2011/05/06(Fri) 00:11
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
このたびは、マルチポストで質問したり、Resが遅くなったり、ちぐはぐ
だったりとすみませんでした。
現在、おしえていただいた
式:CDate(Format("2211 1","\h@@/@@/@@"))
を作成したクエリのフィールドに記入してみましたが、2700あるすべてのレコードが2010/11/01
になっている状態です。

2211 1
2211 2
221115
23 1 3
23 2 2 と一年ぶんほど続いてゆくのですが。

マナーを守れず、せっかく親切にResをいただいたのですが、
みなさんに不愉快な思いをさせて申し訳ありませんでした。

タイトルRe^3: インポート後の日付変換
記事No16662
投稿日: 2011/05/07(Sat) 23:54
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
ふじさん。この度は、お世話になりました。
CDate(Format([日付2],"\h@@\/@@\/@@")) をクエリの
フォームに記入し実行で、きれいに日付型に一括変換に成功しました。
ちぐはぐな質問のしかたと、Resがいつも2日後だったりと、反省しておりますが、
Resをくださった方々に、大変感謝しております。
初めての質問でしたが、それ以前にもっと、Accessを勉強しようと思いました。
問題は、おかげさまでクリアできました。
ありがとうございました。

タイトルRe: インポート後の日付変換
記事No16641
投稿日: 2011/05/02(Mon) 13:06
投稿者hatena
解決済: ON
> インポート後のAccessテーブルフィールドには、「□23□□4□25」の型式テキスト型で
> 読み込まれております。
> (□はスペース)これをyyyy/yy/yyの日付けの型式に一括変換させたいのですが、
> 隣りに新たにフィールドを挿入して式ビルダを使えばできますか?その際の式はどのようなものでしょうか?

当方のAC2007で確認したところ、下記の式で変換できました。


テキスト型で、yyyy/mm/dd型式

Format("H" & フィールド,"yyyy/mm/dd")


日付/時刻型への変換は、

CDate("H" & フィールド)


Access君、なかなか、やりますね。

タイトルRe^2: インポート後の日付変換
記事No16644
投稿日: 2011/05/03(Tue) 00:08
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
hatenaさん。Resありがとうございます。返信おそくなってすみません。
帰宅して試してみましたが、勉強不足で、できませんでした。
でも、このようなResをいただいて、なんとか解決しそうな気がしてます。
メールでhatenaさんにファイルを送らせていただきたいのですが、気が向いたら、よろしくお願いします。
私のメールアドレスは、
crystalartsalpha@gmail.com
です。
あつかましいのですが、よろしくお願いします。
返信が、深夜に毎回なります。Resがおそくなりまして、申し訳ありません。
このたびは、回答ありがとうございます。
よろしくお願いします。

タイトルRe^3: インポート後の日付変換
記事No16646
投稿日: 2011/05/03(Tue) 01:19
投稿者hatena
解決済: ON
メールアドレスをさらすのは避けた方がいいですよ。スパムメールが大量に届くようになりますので。
また、ファイルを見なければならないほどの難しい問題でもないし。



まずは、テーブルよりクエリを作成します。
フィールド欄に下記のように式を記述します。

式1: Format("H" & [フィールド名],"yyyy/mm/dd")

これで、yyyy/mm/dd の書式で表示されます。

タイトルRe^4: インポート後の日付変換
記事No16647
投稿日: 2011/05/03(Tue) 08:07
投稿者濱口章徳
解決済: ON
hatenaさん。御指摘ありがとうございます。
さっそくクエリで試してみます。
必ず結果を報告しますので、いま、インターネットカフェでメールチェックしてるのですが、
家に帰るのが明後日になりまして、Resがおそくなりそうですが、
アドバイスありがとうございます。

タイトルRe^5: インポート後の日付変換
記事No16648
投稿日: 2011/05/04(Wed) 19:47
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
お世話になっております。

クエリを作成して、フィールド欄に下記のように式を記述しますした。
式1: Format("H" & [フィールド名],"yyyy/mm/dd")

おなじように、


式1:CDate("H" & フィールド)で
日付/時刻型へ変換されました。

ところが、インポートされたテーブルが、

2211 1 と読み込まれており、、4199/01/01 と表示されます。そこで、22と11の間に
一文字分スペースをいれると、きれいに 2010/11/01と表示され、希望通りに成功しました!!感激しました。

そこでインポートで読み込まれた 22 11 1 の形式をレコード数が2700ありますので、
一括で22と11の間にスペースを。2文字目と3文字目を一文字分空けるという式はできますか?
もしくは、テーブルのフィールドプロパティで設定すればいいのでしょうか?
これが出来れば、あとはワイルドカードで自由に抽出できると思えます。
度々お世話になりますが、よろしくお願いします。

タイトルRe^6: インポート後の日付変換
記事No16650
投稿日: 2011/05/05(Thu) 01:30
投稿者hatena
解決済: ON
マルチポストはこの掲示板では禁止となっています。
下記を参照してください。
http://www.accessclub.jp/akira/025.html

ということで本来はこちらは削除すべきですが、
すでに回答が付いているので削除できませんので、
解決したら両方の掲示板に結果報告とお礼を載せるように
してください。

> 2211 1 と読み込まれており、、4199/01/01 と表示されます。そこで、22と11の間に
> 一文字分スペースをいれると、きれいに 2010/11/01と表示され、希望通りに成功しました!!感激しました。

質問するときは、情報は正確に提供してください。

最初の質問では、

> 「□23□□4□25」の型式テキスト型で

と言ってました。今回は、「2211 1」全然違うじゃないですか。

今回の書式なら、

式1: CDate(Format("2211 1","\h@@/@@/@@"))

で日付/時刻型に変換できます。

タイトルRe^7: インポート後の日付変換
記事No16652
投稿日: 2011/05/05(Thu) 23:54
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
Resが遅くなってしまいすみません。
おしえていただいた
CDate(Format("2211 1","\h@@/@@/@@"))
では、2700のすべてのレコードが2010/11/01
になってしまいました。

2211 1
2211 2
221115
23 1 3
23 2 2 と一年ぶんほど続いてゆくのですが。
またまた、説明不足ですみません。

このたびは、マルチポストで質問したり、Resが遅くなったり、ちぐはぐ
だったりと、みなさんに不愉快な思いをさせて申し訳ありませんでした。

もう少し、マナーを踏まえて質問できるように改めます。
お許しください。

タイトルRe^8: インポート後の日付変換
記事No16655
投稿日: 2011/05/06(Fri) 00:35
投稿者hatena
解決済: ON
> CDate(Format("2211 1","\h@@/@@/@@"))
> では、2700のすべてのレコードが2010/11/01
> になってしまいました。

あっ、そのまま、使っちゃったのね。

CDate(Format([フィールド名],"\h@@/@@/@@"))

にしてください。

紛らわしい書き方をしてすみませんでした。


05/06 11:33 式でタイプミスしてましたので、修正しました。

タイトルRe^9: インポート後の日付変換
記事No16657
投稿日: 2011/05/06(Fri) 10:10
投稿者濱口 章徳
解決済: ON
毎回、根気強く丁寧にResを頂いて恐縮しております。
Web閲覧は出来るのですが、手元にACCESSが無くて、明日帰宅して試してみます。
今回も有りがたい回答ありがとうございます。

タイトルRe^10: インポート後の日付変換
記事No16661
投稿日: 2011/05/07(Sat) 23:52
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
hatenaさん。あいかわらず、Resが遅くなってしまし申し訳ありません。
教えていただいた式 式1: CDate(Format([日付2],"\h@@\/@@\/@@")) をクエリの
フォームに記入し実行したら、2700すべてのレコードがきれいにyyyy/yy/yyの
カレンダーデータに変換されました。
これで、あとは、自由に抽出できそうです。
この度は、誠にありがとうございました。
感謝のことばもありません。
マナーをわきまえず、いろいろと失礼をいたしましたが、
感謝の言葉もありません。
ほんとにありがとうございました。

タイトルRe: インポート後の日付変換
記事No16642
投稿日: 2011/05/02(Mon) 15:21
投稿者よろずや
解決済: ON
マルチポストですか...

タイトルRe^2: インポート後の日付変換
記事No16645
投稿日: 2011/05/03(Tue) 00:15
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
よろずやさん、式をおしえてくださりありがとうございます。


式1: CDate("H" & Mid([テーブル1].[日付],2,2) & "/" & Mid([テーブル1].[日付],5,2) & "/" & Mid([テーブル1].[日付],8,2))

せっかくですが、このありがたい式をどこに記入すればよいのでしょうか?
VBAではなく、初級に投稿すればよかったかも…。
よろずやさんが教えてくださった、この式で解決しそうなきがするのですが…。
かならず、この式を活用させていただこうと思います。
この度は回答ありがとうございました。

タイトルRe^3: インポート後の日付変換
記事No16649
投稿日: 2011/05/04(Wed) 20:17
投稿者よろずや
解決済: ON
> よろずやさん、式をおしえてくださりありがとうございます。

このサイトでは教えていません。
これでは他の回答者に失礼です。
両方のサイト共にマルチポストを容認していますが、
最低限のマナーとして、他のサイトで回答があったことなどを
両方のサイトに明記してください。

マルチポストとは:
同じ質問を複数のサイトに投稿すること。
マルチポストを禁止している処も多くあります。

タイトルRe^4: インポート後の日付変換
記事No16651
投稿日: 2011/05/05(Thu) 11:39
投稿者Hank
解決済: ON
> 両方のサイト共にマルチポストを容認していますが、

VBA質問箱基本ポリシー には、
「当質問箱では、マルチポストは原則認めています。」が、
「しかし、もしマルチポストをするのなら、可能な限り「○○にも同じ質問を出しました」ということを宣言してください。
 そして、仮に他のサイトで解決したのなら、ここにも必ずその顛末を書いてください。
 質問しっぱなし、というのはモラルに反します。「解決したからいいや」というのではありません。」
と書いてありますし、
「また、マルチポストを明示的に禁止しているサイトとのマルチポストをしてはいけません。」
とも書いてあります。

ここAccessClubは「明示的に禁止」されています。
はじめに:http://www.accessclub.jp/akira/025.html
 ・複数のBBSに同一の投稿をすることは厳禁です。(これをマルチポストと呼びます)

ということで、結果的に両サイトともにマルチポストは禁止されていることになります。

タイトルRe^5: インポート後の日付変換
記事No16654
投稿日: 2011/05/06(Fri) 00:15
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
このたびは、失礼なことをしました。
ご指摘は、しっかりと自戒いたします。
みなさんに不愉快な思いをさせて申し訳ありませんでした。

もう少し、マナーを踏まえて質問できるように改めます。
お許しください。

タイトルRe^5: インポート後の日付変換
記事No16663
投稿日: 2011/05/07(Sat) 23:56
投稿者濱口章徳   <crystalartsalpha@gmail.com>
解決済: ON
質問がクリア出来ました。
Resをくださったそれぞれの方々に、大変感謝しております。
ちぐはぐな質問のしかたと、Resがいつも2日後だったりと、反省しておりますが、
初めての質問でしたが、それ以前にもっと、Accessを勉強しようと思いました。
問題は、おかげさまでクリアできました。
ありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る