アクセス2003で秒数削除

このQ&Aのポイント
  • アクセス2003を使用してエクセルからデータをテーブルにインポートする際、秒数まで入ったデータがあります。しかし、他のテーブルのデータは秒数が入っておらず、クエリの作成ができません。秒数が入っていないデータの時間から秒数を削除する方法を教えてください。
  • アクセス2003を使ってエクセルからデータをインポートし、そのデータには秒数まで入った時間の項目があります。しかし、他のテーブルのデータには秒数が入っていないため、クエリの作成ができません。秒数が入っていないデータの時間から秒数を削除する方法を教えてください。
  • アクセス2003でエクセルからデータをテーブルにインポートした際、秒数まで入った時間の項目があります。しかし、他のテーブルのデータには秒数が入っていないため、クエリが正常に作成できません。秒数が入っていないデータの時間から秒数を削除する方法を教えてください。
回答を見る
  • ベストアンサー

アクセス2003で秒数削除

アクセス2003を使っています。 エクセルからデータをアクセスのあるテーブルにインポートしたのですが、そのデータには「時間」という項目があり、例えば、「17:45:33」という感じで、秒数まで入っています。 インポート先にテーブルには他のテーブルと「時間」でリレーションを組み、クエリを作っています。 ところが、他のテーブルの「時間」は秒数が入っておらず、上手くクエリが作れません。(手作業で秒数を消せば、上手くクエリができます、逆に手作業で秒数を入力すれば上手くクエリができます。) ここで質問ですが、そのインポートした「秒数が入っていないデータ」の時間の秒数を削除したいのですが、どうすれば良いのでしょうか? 単純にデザインビューで書式設定で、秒数を見えなくする設定ではクエリは成功しませんでした。(秒数が見えなくなっているだけで、秒数は存在するため) よろしくお願いします。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.5

#1です。 > そのインポートした「秒数が入っていないデータ」の時間の秒数を削除したいのですが、どうすれば良いのでしょうか? インポートする前のデータを書き換えるのもあるのでは? インポートしたデータそのものを書き換える手順(事前にBackupのこと) 1)クエリを新規作成 2)インポートしたデータのテーブルを追加し、「テーブルを追加」を閉じる 3)メニューのクエリ>更新とクリック 4)「時刻」をドラッグして表示させる 5)更新項目に「format([時間], "HH:MM")」を設定 6)赤い!をクリック 7)テーブルを開いて結果を確認する 参考に以下、インポートしたデータを変更することなく、クエリで結合させる方法。 【tblA】EXCELでインポートしたデータ 1)キー 2)データ 3)時間   秒あり hh:mm:ss (ex 09:12:23) 【tblB】以前からあるデータ 1)キー 2)データ 3)時間   秒無し hh:mm (ex 09:12) 【手順】 1)クエリのデザインビューを開く 2)tblA、tblBを追加する 3)「テーブルの追加」を閉じる 4)tblAの「キー」「データ」「時間」、tblBの「キー」「データ」「時間」を表示させる 5)さらにtblAの「時間」を表示させる(合計7項目を表示させる) 6)5)の部分を「比較用時間: format([tblA]![時間], "HH:MM")」と変更する 7)5)の抽出条件に「format([tblB]![時間], "HH:MM")」を設定する 8)赤い!をクリックして結果を確認する これで「秒部分に値が無い『時刻』」と「秒部分に値がある『時刻』」で結合できるハズ。

その他の回答 (4)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

質問の秒数を削除をしてからどうしようとしたのですか? それに変わる方法を回答しただけです インポートしたテーブルのデータを書き換えたいのなら更新クエリを作ってください

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

日付時刻型の正体は表示されているような文字列が入っているのではなく 整数部で日付を小数部で時刻を表す浮動小数点型の数値です 従って秒数だけを削除するというようなことは出来ません 質問のケースではExcelからインポートしたものには秒のところに値が入っていて 比較するほうでは0秒になっていると思われます ですからインポートしたほうのデータの秒のところを0に置き換えてやればいいですね CDate(Format(時間,"hh:nn")) 秒を指定しなければ0が補われます もちろん指定してもいいですよ CDate(Format(時間,"hh:nn:00"))

maintec
質問者

お礼

回答ありがとうございます。 私の勉強不足で回答者様のおっしゃっているやり方がわかりません。 大変恐縮ですが、補足を頂ければ助かります。 お手数ですが、よろしくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Format([生年月日],"yyyy/mm/dd")のように別フィールドを作ると 文字列で2007/03/01となるでしょう。これで他テーブルの値との関連はどうでしょう。 同じく別フィールドだがクエリのデザインで、式 DateSerial(Year([生年月日]),Month([生年月日]),Day([生年月日])) なら日付になってくれると思う。 相手テーブルの日付に合わせて考えたら。 >書式設定で、秒数を見えなくする設定ではクエリは成功しませんでした 書式(見た目)と値は、エクセルのセルの場合のように、ちがうものだと思う。 普通今までの歴史的進歩の中で、今も中心は「値」で、言語、ソフトなどで比較の対象は値のほうだと思う。

maintec
質問者

お礼

回答ありがとうございます。 こちらの仕様等の関係で「時間」がどうしても必要となっています。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

JOIN の条件文をFormatで編集するのはどうでしょう? どちらも「文字型」として比較。 でなければ、もう一段クエリ(orテーブル)を介在させ、「秒の無い書式」のデータを作成する、とか。

maintec
質問者

お礼

回答ありがとうございます。 私の勉強不足で回答者様のおっしゃっていることが理解できません。 大変恐縮ですが、補足を頂ければ助かります。 お手数ですが、よろしくお願いします。

関連するQ&A

  • AccessへのExcelデータインポート

    お世話になります。 Accessのテーブルデータの更新をExcelからのインポートで行いたいと試していますが「上書きできません」とエラーが表示されます。 データ型などの設定変更を回避するため、一旦元データをEXCELにダウンロードし、見出しのみを残しデータを削除、2行目以降に最新データを値貼り付けで保存しています。Accessのインポート作業に於いて、一応データ型や主キーの設定確認していますが、同様のファイル3つとも同じ現象です。 なお、3つのファイルはリレーションを張り、クエリを作成しています。リレーションを外さないと更新が出来ないのであれば、複数のリレーションが絡んでおり、とても外すのは危険とも思っています。 どうぞ宜しくお願い致します、

  • ACCESSの条件付書式

    アクセスのデータシートビューで条件付書式ができるのは フォームをデータシートビューで表示したときだけでしょうか? テーブルやクエリでは ツールバーに「書式→条件付書式」は表示されませんが フォームのデータシートビューを開いている時のみ、 「書式→条件付書式」が表示されます。 テーブルやクエリでも条件付書式を設定できる方法があれば教えてください。 よろしくお願いします。

  • アクセス2007 テーブルの全削除とデータ移動

    アクセス2007 テーブルの全削除とデータ移動 全テーブルを削除して、データをインポートしようとしています。 http://okwave.jp/qa/q5952603.html 以前の質問<QNo.5952603>の続きになってしまいますが。 >質問3. >削除後にインポートをしたいのですが。 >手動でアクセスメニュー>外部データ>アクセス(のインポート)>現在の~~>すべて選択(テーブル)>OK >これを実現するVBの記述は、どんなコードになるのでしょうか? 答え >DoCmd.TransferDatabase acImport, "Microsoft Access", strPATH, acTable, strTDef, strTDef, False なのですが、手動で行った場合の「オプション」>インポート「リレーションシップ=チェックON」の部分が 上記のお答えのコードで実現できませんでした。 各クエリの部分的なリレーションは残ってますが、全体のリレーション線が消えてしまいます。 どのようにしたら再現できますでしょうか?

  • accessのクエリへの入力について

    Access初心者です。 2つのテーブル間で1つのリレーションをとってクエリを実行したのですが、実行により生成されたデータシートビュー上でデータを入力することができません。 リレーションとらずに1つのテーブルのみでクエリを実行したところ入力できました。 大変恐縮ですがこの違いについてご教授ください。 よろしくお願いいたします。

  • ACCESS ユニオンクエリはデータ編集ができない

    教えてください。初心者なので基本的なことで大変お恥ずかしいのですが・・・。 ACCESSでユニオンクエリを作成し、検索の結果としてフォーム上にデータが閲覧できるシステムを作りました。ユニオンクエリの元となる、テーブルは4つあります。 しかし、フォーム上からも、作成したクエリのデータシートビューからもデータの編集ができません。 クエリというのは、編集ができないという認識でいいのでしょうか。 データを編集するにはテーブルとしてインポートしなおして、作業するしかないのでしょうか? 何か良い方法があれば教えて下さい。

  • アクセスのことで教えて下さい。

    アクセスについて教えて下さい。 オフィスXpを使っています。 保健室に入室するもののデータを取りたいので テーブルに、1、入室記録、2、生徒名簿、3、入室理由の 3つのテーブルを作りました。 これらにリレーションを設定した後、これを元にクエリを作りました。 そのクエリには、ID、入室月日、学年、組、生徒名、入室理由が記入できるようになっております。 このクエリを元にフォームを作ると、デザインビューは表示されるのに 開くと真っ白で記入できません。 なぜなのか分かりません。 お分かりの方教えて下さい。 9月14日

  • ACCESS のインポート

    ACCESS 2003をかじり始めた初心者です。 2つのテーブルから作ったクエリのデータにEXCELデータをインポートしようと思いましたが、インポートウィザードではインポート先としてテーブルを要求して来るようです。どうすれば良いのでしょうか。クエリをテーブルに変換する方法があればいいのかも知れませんが。

  • <アクセスのデザインビューでの設定>

    <アクセスのデザインビューでの設定> こんにちわ。 エクセルで作成したデータをアクセスにインポートして作成したテーブルがあります。 そのフィールドに日にちを入れるところがあります。 2010/7/5と表示されるように,デザインビューで設定しましたが, 「定義されているフィールドが多すぎます」とエラーがでて保存できませんでした。 解決方法はありますでしょうか。 よろしくお願いします!! (行った,設定方法) 1)テーブルをデザインビューで開く。 2)日にちのフィールドのデータ型を「日付/時刻型」へ 3)標準タブの書式を「日付(S)」としました。 4)保存→エラー (アクセスのバージョン)  アクセス98 (PCのOS)XP

  • ACCESS 不要なオブジェクトの削除

    お尋ねします。 ACCESS初心者です。 OSはXPのPRO、ACCESSは2003を使っています。 いろいろ試行錯誤しながらDBを作成しているうち、テーブルやクエリなどのオブジェクトがかなりたまってしまいました。 パフィーマンスを上げるため、DBを整理して不要なオブジェクトを削除したいのですが、分析方法がわかりません。 テーブルとクエリはリレーションを見ればつながりがわかるのですが、フォームやレポートなどはひとつひとつデータソースを調べるしかないのでしょうか? どなたか教えてください。

  • Access(アクセス)でのインポートについて

    テーブルのインポートでエクセルファイルをインポートしたいのですが「ワークシートインポートウィザード」の画面でテーブルを指定して保存すると 「Microsoft Access」の画面で「すべてのデータをテーブルに追加できませんでした。 キー違反のため、0件のレコードのデータが失われ、0件のレコードが削除されました。」と出てきて、保存できません。 もとのテーブルのデータ型を使ってインポートするにはどうしたらいいのでしょうか。よろしくお願いします。 インポートする元のデータ(エクセル)とインポート先(アクセス)の関係は次の通りです。 エクセルファイル    アクセスのテーブル (セルの書式設定)   データ型、フィールドサイズ --------------------------------------------- 数値          数値型、長整数型 文字列         テキスト型、16 インポートする前に元のエクセルデータをアクセスのデータ型に合わせただけではダメなのでしょうか

専門家に質問してみよう