OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Accessテーブルのデータ型を変更したい

  • すぐに回答を!
  • 質問No.106481
  • 閲覧数128
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 0% (0/5)

Access95 Version7を使っています。

DateDiff関数を使って日数を出したいのですが、
テーブルにあるデータは”テキスト型”になっています。
これを”日付/時刻型”に変換するには、どうすれば良いのでしょうか?

データ例:20010520

というように、8桁で入っています。

宜しくお願いします・・・。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル10

ベストアンサー率 31% (47/149)

dim nowdata as Date dim strBuff as String strBuff=format("yyyy/mm/dd","20010520") とformat関数を使用して、 nowdate=CDate(strBuff) とDate型に変換ではだめですか? VBで操作するときは、私は上記のようにしています。 これくらいはやっ ...続きを読む
dim nowdata as Date
dim strBuff as String

strBuff=format("yyyy/mm/dd","20010520")
とformat関数を使用して、
nowdate=CDate(strBuff)
とDate型に変換ではだめですか?
VBで操作するときは、私は上記のようにしています。

これくらいはやってると怒られるかもしれませんが、こういう質問の
時はどこまで考えたか書いた方がいいかと思います。
補足コメント
T12

お礼率 0% (0/5)

早速のお返事、ありがとうございます。

聞き方がおおざっぱすぎました。すみません・・・。

私がためしてみた方法は、プロパティの”定型入力”とかいじれば変換できるのだろうか?とかいったレベルです。
でも、これだと表示が変わるだけなんですね。

あちこちのサイトなども覗いたのですが、どうしても分かりませんでした。

教えて頂いたコードは、”モジュール”に記入すべきものなのでしょうか?
(この質問でお察し頂ける通り、Access初心者です)
モジュールがよく分からないので、もう少し詳しく教えて頂ければありがたいのですが。

ちなみに、変換したいデータのフィールド名は、
「受注日」「納期予定」「納品日」
などです。
投稿日時 - 2001-07-19 13:29:01

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

クエリーで = DateSerial(Mid([あるデータ],1,4),Mid([あるデータ],5,2),Mid([あるデータ],7,2)) ではどうでしょう。 ...続きを読む
クエリーで
= DateSerial(Mid([あるデータ],1,4),Mid([あるデータ],5,2),Mid([あるデータ],7,2))
ではどうでしょう。
補足コメント
T12

お礼率 0% (0/5)

お返事ありがとうございます。

[あるデータ]に特定の8桁の数字をあてはめた場合は、これでうまく動きました!

でも、フィールド名を入れることで、そのフィールドの全データを変換することはできないのでしょうか?
同一クエリー内にあるフィールド名を[あるデータ]に代入してみましたが、#Errorになってしまいました。
投稿日時 - 2001-07-19 13:39:12
  • 回答No.3
レベル10

ベストアンサー率 28% (39/138)

テーブル定義の型を変更したいという事でしょうか? それでしたら無理です。 もちろん、テーブルの張り替えを行えばできますが。 もう一つテーブルを作って、クエリーで型を変換して落として、元のテーブルを削除して新しい方をリネームすれば大丈夫だと思います。
テーブル定義の型を変更したいという事でしょうか?
それでしたら無理です。
もちろん、テーブルの張り替えを行えばできますが。
もう一つテーブルを作って、クエリーで型を変換して落として、元のテーブルを削除して新しい方をリネームすれば大丈夫だと思います。
  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

ANo.2 の続きです。自分でやるとうまく日付になるんですが・・・その後、演算もできます。 >#Errorになってしまいました 受注日とか日付が未入力のレコードでエラーが起きていませんか?これぐらいしか思いつきませんでした。 例えば、クエリーで受注日を日付にしたいときは、受注日ymdというフィールドを IIf(Len([受注日])=8,DateSerial(Mid([受注日],1,4) ...続きを読む
ANo.2 の続きです。自分でやるとうまく日付になるんですが・・・その後、演算もできます。

>#Errorになってしまいました

受注日とか日付が未入力のレコードでエラーが起きていませんか?これぐらいしか思いつきませんでした。

例えば、クエリーで受注日を日付にしたいときは、受注日ymdというフィールドを
IIf(Len([受注日])=8,DateSerial(Mid([受注日],1,4),Mid([受注日],5,2),Mid([受注日],7,2)),0)
のように定義して下さい。8桁の文字列しか日付にしません。
これで、DateDiffで日数等を計算する時、両方の日付が未入力の場合は0日になりますが、どちらかの日付に未入力があれば同様の判定が必要でしょう。

また、全体が分かりませんが、[テーブル1]![受注日]のようにしてみたら・・・どうでしょう。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ