Access Excel Word 日付の表示とフィールドの移動

このQ&Aのポイント
  • Accessのインポートデータの表示形式と印刷表示形式が異なるため、フィールドの更新方法を知りたい。
  • Accessの日付データの表示を関数を使って変更しているが、年と月が飛び月する場合に手動で修正する必要があり、フォームで修正した場合に入力内容が表示されるようにしたい。
  • Accessでフィールドを自動的に移動させる方法を知りたい。ボタンをクリックした場合に指定したフィールドデータを移動させ、空の状態にしたい。
回答を見る
  • ベストアンサー

Access Excel Word 日付の表示とフィールドの移動

元のデータがExcel形式でS2412と言う形式で日付を持っています。 これをAccessがインポートします。インポート先のデータは 定型入力で「?##\年##\月;0;_」のようなデータの持ち方をしています。(テキスト型) しかし実際の印刷の表示(Wordでの印刷)では昭和24年12月と表示します。 インポートしただけではAccessの元データがS24年12月とならないので (表示はS24年12月となりますが、フィールドの保存形式が0でもAccessからExcelにエクスポートするとS2412と表示されます。) その更新?の方法が知りたいです。 もし無理なようでしたら、Excel関数を使うだけですが・・・。 年号の表記に関しては置き換えで変更しようと思ってます。 Accessでの日付で15年6月、16年6月、17年6月と連番で続いているデータが多いので、 関数を使い17年から引いて表示させています。 しかし、極まれに年が飛び月が変わる場合があります。 その場合は手で直す必要があるのですが、フォームで直した場合のみ 指定したフィールドに入力され、その入力内容が 表示されるようにしたいです。 Accessの作りからして無理な気がしますができるのでしょうか? 日付(フォーム) 15/6(関数で表示している) 16/6(関数で表示している) 17/6 Accessでフィールドを自動的に移動させたいのですが、 VBAをまったく勉強していないのでもし出来るようでしたらお願いします。 ボタンをクリックした場合、任意のフィールドデータが全て消え (もしくは別の名前の新しいフィールドに移動) その右側のフィールドデータを左側のフィールドに移し さらにその右側のデータを左側へ移し3個目のフィールドデータを 空の状態にしたいのですが可能でしょうか?

  • sskj
  • お礼率24% (75/303)

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

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

>あまりスマートとは言えないです。 前年度との差を求めたりするのならこのやり方でもいいんじゃないですか 一覧だけ表示すればいいのならクロス集計クエリです SUMIFもどきを使う手もありますけどね 17年6月合計:Sum(IIf(日付 between #H17/06/01# and #H17/06/30#,数値,0))

sskj
質問者

お礼

ありがとうございます。 また別の疑問が出てきたので他で質問するかもしれませんが そのときはお願いします。

その他の回答 (4)

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

>日付だろうが決算期だろうが縦もちでID割り振ってやらないと >だめなんですね。 データベースの基本はテーブルです テーブル設計についてはそれだけを書いた本も存在するぐらいですが どの入門書にも初めのほうに必ず基本知識だけは書かれています ただ初心のうちはその重要性がわからず流してしまうんですよね もう一度入門書の(持っていなければ買って)テーブルの作り方のところを読んでください

sskj
質問者

補足

ありがとうございます。 書き込んだあとに思い出したのですが設計当初 縦で設計しようとしていました。 手直ししてみましたが、当初と同じく計算に悩んでいます。 前の年のデータと今の年のデータを使い計算するので クエリで横列に直さないといけないです。 会社に本を置いてきてしまったので 今は詳しくお聞きすることができないのですが 何か良い方法はあるのでしょうか? 同じクエリを複数個(横列に分ける分だけ)用意し それを一つのクエリにいれて抽出条件で各年度を指定。 このときIDコードを繋げる。 このようなやり方をしましたが、あまりスマートとは言えないです。 クロス集計等使えばできそうな気もしますが。

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

>一年立つ毎に前々年度、前年度、今年度フィールドのデータのみをずらす必要があるのです。 >多分?フィールド名を変えればいいと言うだけの話ですよね。 そんなやり方をしているのですか? それだと話は大事になります。年度ごとにテーブル構造をいじらなければならない なんてのはデータベース設計としては落第です 年度ごとのデータを横方向に展開するというのが正規化規則にもろ違反しています データベースの考え方でなくExcelのような表計算の考え方ですね それで前半の質問の意味も分かりました 答えはひとつ 「データベースではそのようなやり方はしません。テーブルを作り変えましょう」 ですね データは日付をつけて新しいレコードとしてどんどん付け加えていきます Excelのイメージで言うと新しい行として追加していくのです この作り変えをしないとAccess(データベース)を利用するメリットはぜんぜんでてきませんよ

sskj
質問者

補足

今さら気づきました。 Accessといいますかデータベースさえやっていなかったので・・・。 ほかのデータはExcelのよな持ち方をさせているんですが これに関しては気づきませんでした。 日付だろうが決算期だろうが縦もちでID割り振ってやらないと だめなんですね。

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

質問の前半は何がしたいのかよく分かりません 後半の >Accessでフィールドを自動的に移動させたいのですが、 考え方がExcelですね 空のフィールドを追加したいだけでしたらテーブルデザインビューでフィールドを追加するだけです 追加したフィールドの位置もデザインビューで自由に変えられます (データベースではフィールドの位置はあまり意味ありませんけどね)

sskj
質問者

補足

やはり手動で行うのが一番はやいのですかね。 一年ごとに最も古いフィールドデータを破棄し、 その次に古いフィールドデータを最も古いフィールドに移し、 今年度フィールドに新しいデータを入れる。 この作業をするので、一年立つ毎に前々年度、前年度、今年度フィールドのデータのみをずらす必要があるのです。 多分?フィールド名を変えればいいと言うだけの話ですよね。 >質問の前半は何がしたいのかよく分かりません 一つのレコードデータで3年度分の日付データがあります。 この日付は17/6 16/6 15/6の用に同じ月で一年違うだけの 場合が多いので16/6 15/6に関してはテーブルにデータを 持たず17/6のデータから関数で表しています。 しかし、極まれにそうならない場合があります。 そうならない場合のみテーブルデータを使い変更可能な状態にしたいのです。(フィールド上で) 二つ目の質問を改めて書きましたが分かるでしょうか? 今考えればクエリはデータを持たないので、関数で表示した 年月日(16/6、15/6)をテーブルデータに直す方法しかない様な気がします。 一つ目の質問ですが、例えばあるフィールドの規定値を「熊」とした場合、 規定値を設定する前のデータは「熊」が入らず、設定後のデータは「熊」と表示されます。 しかし、ExcelからAccessにデータを入れた場合、設定済みでも「熊」とは表示されません。 これと同様にフィールドの定型入力の保存形式を「0」に指定しておいてもExcelからAccessにデータを入れた場合、 リテラル文字が入っていない状態で保存されます。 フィールドプロパティと違う形式で入ってしまっている物をプロパティに合わせたいのです。

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

>Excel形式でS2412と言う形式で 日付にエクセル形式というのは無いと思います。 日付のセルの値は (1)日付シリアル値    そして表示形式の設定 (2)文字列 のどちらかしかないと思います。エクセルの日付シリアル値という(考え方)のは知ってますか。 その辺(上記の(1)か(2)か)かからこの質問は明確にしないと 議論がおかしくなると思います。 エクセルでは(1)が標準なので、(1)の日付に直して((2)に対し関数を使えば(1)に直せる)、テストを始められることをお勧めします。 あくまで参考ですが http://www.accessclub.jp/bbs/0003/beginers1267.html

sskj
質問者

補足

>日付にエクセル形式というのは無いと思います。 勘違いするような書き方をしてしまいました。 「エクセルファイルでS2412という文字列でデータを持っている。」 という事です。 データの流れ (元データ)Excel→Access→(Excel→)Word(印刷)

関連するQ&A

  • Excel関数で任意の日付を表示させるには?

    Excel関数を用いて、任意の日付を表示させる方法を 教えていただけますか? 例えば、今日からちょうど1年半後の日付を 知りたい場合、セルA1に今日の日付 20040829 と入力すると、セルB1に 20060229 と表示させるような関数は、何をどのように 使えば良いのでしょうか? date という関数を試してみたのですが、 「日」は加算できるのですが、 「年」や「月」に+1、+6と入力しても、 「日」の方に加算されてしまい、 うまくいかないんです。 良い方法を御存知の方がいらっしゃいましたら、 ご回答、よろしくお願いします。

  • 日付/時刻型フィールドで時刻データのみを扱うには?

    アクセスのテーブル管理について質問させてください。 現在アクセス上で処理しているテーブルの一つ、日付/時刻型フィールドには時刻データが入っています。 形式:定型入力 時刻(L) 13:12:00 このテーブルをCSVデータとしてエクスポートしたところ、1899/12/30という日付データが時刻データの前に追加されてしまいました。 定型入力をしていたので日付データは扱われないものだと思っていたのですが、見えない部分で日付データも扱われていたということですね。 これを日付/時刻型フィールドのまま時刻データのみを扱う様にするにはどのようにしたらよいのでしょうか? 具体的には、アクセス上で作成した時刻データを含む計測値を日付毎のCSVファイルとしてエクスポートし、後に必要になった場合指定された日付のファイルをインポートします。 よって日付データは必要ないので時刻データのみで管理をしたい、ということです。 レコード数が多いため、ファイル容量を減らすためデータはなるべく少なくしたいのが実情です。 それでも必要ない日付データを加えておいた方がよいのでしょうか? よろしくお願いいたします。

  • Access 数値フィールドのデータを日付としてまとめたい

    いつもお世話になっています。 Accessで3つのフィールドに2006、4、25 と年、月、日 として扱うデータが入っています。 業務上どうしても別々のフィールドに置いておいたほうがよいので、そうしたのですが。 その3つのデータを、1つのフィールドに日付としてまとめるやり方を教えてください。 よろしくお願いします。

  • 秒数表示を日付表示に変更する関数(Access)

    アクセス(2000以降のバージョン)での質問です。 日付表示が1970年1月1日00:00:00(グリニッジ標準時)からの 秒数表示となっているデータがあります。 このデータを「yyyy/mm/dd hh:mm:ss」(日本時間)表記に したいと考えています。 この内容をアクセスのクエリで、 秒数表示をひとつのフィールドに入れた状態で 別のフィールドに書き込める関数はあるでしょうか? できれば複数のフィールドを使わずに、 一つのフィールドのみでできるとありがたいです。 ある場合にはその方法を、 無いけどもこの方法で、というのがありましたら お教えいただけないでしょうか? アクセス自体がまだ不慣れなもので、 説明不足の箇所もあるかもしれませんが、 よろしくお願いいたします。

  • Access format関数を使わず日付を変換

    Access2016で、あるテーブルからクエリを作成して日付フィールド(西暦/月/日)を(西暦/年)のようにさせたいのですが、以下のようにformat関数を入力して実行すると完了するまでに非常に長い時間がかかってしまい困っています。 別の方法で処理をしたいのですが、ご存知の方いらっしゃるでしょうか。 SQLとかは使わず、初心者でも後から解読・編集できるような方法があればありがたいです。 元となるテーブルのデータ型は都合上変えられません。 フィールド名 日付 データ型 日付/時刻型 データサンプル 2024/2/27 クエリでやりたいこと 元のテーブルのデータを日別ではなく月別で集計したいため、 日付データを 年/月/日 ではなく 年/月 に変換したい ※同月のデータを同一の値に変換できさえすれば合計できるので、表示される形式は「2024/2」でも「2024年2月」でも「202402」でも構いません。 今回入力した式 「年月:format([日付],"yyyy/mm")」 以上、よろしくお願いします。

  • Accessのフィールドプロパティ

    Accessの基本的なことをお尋ねします。 Accessのフィールドプロパティの項目には「書式」と「定型入力」があります。基本的にどう違うのでしょうか? たとえば日付の表示形式などはどちらでも出来るような気がするのですが、 どういう風に使い分けるといいのでしょうか?

  • アクセス2000でフィールドの設定で和暦日付について

    アクセス2000を使っています。 フィールドの設定で和暦日付を選択しましたが、入力がうまくいきません。 L99\年99\月99\日の意味が分かりません。 よろしくお願いします。

  • ACCESS 日付表示で00月を使用する

    日付の表示を昭和61年00月と表示する場合があるのですが データ型 日付/時刻 のフィールド書式プロパティに ggge\年m\月と指定すると00月が使用できません。 00月を使用する場合、日付/時刻型では駄目なのでしょうか? 書式:ggge\年m\月 定型入力:>L99\年99\月;0;_

  • Aceess2000で8桁の数字を日付型のフィールドにインポートする方法

    Access2000でマクロを使って簡単にデータ取り込み等を実現しようとしています。 しかし、インポート元のCSVに、日付を表わす8桁の数字(2000年12月1日なら20011201)があり、これを日付型のフィールドにインポートしようとすると、データが削除されてしまいます。 どなたか、簡単にデータを変換、取り込む方法をご存知の方がおりましたら、お教えください。お願いします!!!

  • アクセスで日付(期間)抽出

    アクセスでわからないことがあるので教えて下さい。 アクセス2003を使用しています。 フィールド名  日付    名前  代金        2001/10/14  田中  4000        2001/04/05  鈴木  1000 とデータが100件ほど入っています。 この日付でたとえば、4月5日~9月15日までの データだけを抽出したい場合どうすればいいでしょうか? 抽出はできれば、入力フォームを作成して 入力フォームから日付を入れれば、抽出する形をとりたいんです。 お願いいたします。

専門家に質問してみよう