• ベストアンサー

アクセスのフォームで過去のデータ表示について。

アクセス2003で過去のデータを表示させているのですが、現在縦に表示されています。これを横にデータを並べたいのですが、どのようにしたらよいのでしょうか?たとえばある人のデータで日付を上の列表示にして一番新しいデータを左、その次のデータを右隣、、、、というふうに日付ごとに右へ古くなるように並べようと思います。よろしくお願いいたします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です。Excelをレポート代わりにするなら、下記の様なコードでできます。Accessの標準モジュールに記述して試験してみました。(当方Office2000) Sub output_to_Excel() Dim rs As New ADODB.Recordset 'ADOのレコードセット Dim objEXCEL As Object 'Excel参照用 Dim wbk As Object Const xlvalues As Long = -4163 Const xlNone As Long = -4142 'Excelを起動する Set objEXCEL = CreateObject("Excel.Application") objEXCEL.Visible = True 'エクセルのファイルは、mdbと同じ場所にあるとする '「form」という印刷用書式を整えたシートと、「temp」という作業用のシートを備えるとする Set wbk = objEXCEL.Workbooks.Open(CurrentProject.Path & "\" & "myTemplate.xls") 'レコードセットを開く(日付が最新の6件を選択するクエリ Q_latest6を作成しておく) rs.Open "Q_latest6", CurrentProject.Connection, _ adOpenKeyset, adLockOptimistic 'テンポラリーのシートに貼り付けたのち、行列を入れ替えて様式のシートに転写 wbk.sheets("temp").range("A1").copyfromrecordset rs wbk.sheets("temp").range("A1").currentregion.copy '貼り付け位置は環境に合わせて変更要 wbk.sheets("form").range("A1").PasteSpecial Paste:=xlvalues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True 'Excelを開きっぱなしにして、何らかの処理につかう '印刷、名前をつけて保存する等して、手動で終了させる。 rs.Close Set rs = Nothing End Sub >データも蓄積していけるようにしたいです というご主旨がよく分かりませんが、提出履歴を残したいという意味なら、このエクセルのファイルに名前を付けて保存しておくのはいかがでしょうか。 フォームやレポートで実現したければ、他の人の回答をお待ち下さい。

参考URL:
http://www.ken3.org/vba/backno/vba093.html

その他の回答 (4)

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.5

補足です 表示したい項目によっては、クロス集計クエリでも すぐにできるかもしれませんね。 一度、テーブルのフィールド構成とか、 客先に渡す表の構成なんかもご提示されてみてはいかがでしょうか?

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.4

>あるフォームにその日の結果と過去の結果を6回分表示し、 要するに今日から一週間まえまで、という意味かしら? なら、AccessにもExcelにもピボットテーブルがあるので それでやる方法もあると思います。 今日から一週間前までのデータを抽出するクエリをつくって それをソースにするピボットをAccessかExcelでやります。 動作確認も含めて5~15分程度で作成もおわるのではないでしょうか? 次回からはワンクリックで開いて2クリックくらいで印刷しておわり、と。 私ならピボットテーブルでいいかどうかをお客さまにお伺いして、 逆にピボットテーブルでやりたいとお願いしてしまうかな? 面倒くさいのいっさいないので…。 こんな感じの処理であればいちいちプログラム書くのもムダな気もしますし。

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

ACCESSのクエリやテーブルの情況を説明しないで、質問するのはおかしい。あなたのテーブルクエリなぞ、読者に見えない。 それとAccessVBAは経験あるのかな。それが一番の問題。操作では出来ないでしょう。 6個日付を横に並べるらしいが、日付に付随したデータはいくつあるのか。それによって横に並ぶ項目が増えるでしょう。横に展開する表は、少数だと見やすいが、横1ページに収まらないと、ページ繰越したら見られない。 だから出来るだけ、印刷場でデータは下方向に流す。 ACCESSのレポートの解説書でレコードを横に流した形の説明は無いと 思う。レコードと連結があってレコードを自由にレポート面に並べることは難しい。 キー(人らしいが)に関する6レコード以下のレコードをクエリの段階で、1レコードの中の6ブロックのフィールドに組み立てた方が、そのまま印刷できて易しいかと思う。 またはエクセルにデータを持っていってエクセルで組み替えるかどうか。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

日付で降順で並び替えした後、首を左に90度傾けます。首の骨を折らないようにご注意下さい。 というのは冗談ですが、エクセル発想を脱却した方が良いと思います。 どうしてもやりたければ、Officeリンク他の方法で、エクセルに書き出してから行えば良いです。その後どの様に活用したいかで、回答も違ってくると思いますので、補足される事をお勧めします。フォームにスプレッドシートを設置してデータを転記する事は可能だと思います。また、アクセスからエクセルを起動して、データを転記し、お望みの形に変形し、何らかの処理を行い、アクセスに書き戻すなんて事もやろうと思えば可能です。

ayanohina
質問者

補足

早々のご回答ありがとうございます。 あるフォームにその日の結果と過去の結果を6回分表示し、それをその日の報告書として印刷し、お客さまにわたします。また次回も同じように入力、印刷し、データも蓄積していけるようにしたいです。スプレッドシートとははじめて知りましたが、アクセスページは使わないでやっていきたいと思っていますのでよろしくお願いいたします。

関連するQ&A

  • accessでのデータ表示について教えてください。

    accessでのデータ表示について教えてください。 下記のようなデータがあります。 A列 B列 123 4/1 123 5/1 123 4/1 これを、 A列 B列 123 5/1 ※5/1の部分は条件を持たせて表示。 というふうに、A列の重複を一つにし、 B列の部分は条件を持たせて表示(一番遅い日付等)したいです。 accessで変換する方法を教えていただけないでしょうか。 よろしくお願い致します。

  • アクセスでデータが消えました。

    access2000です。 さっきテーブルから直接データを入力していました。 縦行の一番上で右クリックをし、列の挿入をしようとしたら 間違えてその下の「ルックアップ列(L)」を押してしまいました。 間違えたのでキャンセルを選びましたが そうしたら今日入力したデータが全部消えました。 どうしたら元に戻りますでしょうか? 今、何もせずにおいています。 お願いします。

  • Accessのレポートでデータを2列に表示する

    Access2003を使用しています。 IDと名前のフィールドを持つテープルをもとにレポートを作ります。 A4用紙に2列にデータが並ぶようにしたいのですが、ラベル様式では(当然ながら)上から2列にデータが埋まります。 理由があって、用紙の左の列が埋まったら右の列に移る順番にしたいのですがどうしたらよいでしょうか。 悩んでいるので教えていただけると助かります。 よろしくお願いいたします。

  • アクセスのフォームで

    アクセスのフォームで、この様に、"品番"、"設備名"、"単価"、"担当者"のテーブル(1000レコードほどあります)のフォームがあります。 このフォームを開いた時には、1レコード目が表示されますが、下に一覧が全て表示(100以上は次のページ)され、検索フォームに品番、又は、設備名を入力すると、絞りこまれて表示される様にできますか? 又、下の一覧の担当者の右に"編集ボタン"を置きボタンを押すと、左のデータを編集できる様に(編集は上のフォームで行う)できますか? 説明がへたくそで申し訳ありませんが、誰か教えて頂けませんか? よろしくお願いします。

  • EXCELのデータを1度にひっくりかえせますか?

    相場の終値をセルのA1から下に順番に~A20~A120~ というふうに縦1列に打ち込んであるデータを、 1度に逆さまにひっくり返すことは(逆転) 可能でしょうか? グラフを書くときに、横軸を日付に取るとき、 左から右へ時間が流れるようにしたいのに、 そのままだと、A1が最終日(1番新しい日)に なっているので、時間軸の横軸が、左から右へ だんだん若くなってしまいとても見づらいんです・・・ 何とかなりませんでしょうか?? 以上、よろしくアドバイスの程お願いします。

  • Accessのデータの作り方を教えてください。

    Accessでデータが思ったように作れないので、教えていただけないでしょうか。 Excelのデータをテーブルにインポート: 縦(列)に「店コード」が1~10まであり、次の列に「店名」があります。その次の列に、商品Aの売り上げ個数が各店に対応してあります。 次の列には商品B、商品C、商品Dまであります。 その商品の単価が、例えば、商品A:¥100 商品B:¥150               商品C:¥200 商品D:¥250 とします。 そのデータをクエリで、 各店のそれぞれの商品の売り上げ個数×商品の値段 というかたりで、買う点のそれぞれの商品の売り上げの値段だけを 表示させたいのですが、できません。 どなたか教えていただけないでしょうか?

  • ACCESS データシートビューでの回転

    こんにちは。 ACCESSに詳しい方のご意見をうかがいたくお尋ねします。 現在エクセルで処理を行っている業務があるのですが、これを効率化のためにACCESSに移植する事を検討中です。 その中に受注一覧表というのがあり、数か月分の受注状況をフォームに表示したいのですが、現在のエクセルでは日付を横方向にスクロールするように作っています。 ACCESSでもそれと同じ動きを実現するためには、レコードを一番上の行(もしくは下の行)に追加するのではなく、一番右の行に追加するという作る必要があります。 データシートビューでそのような表示は可能でしょうか?

  • ACCESS21010のレポート表示にて

    ACCESS2010にて レポートの表示にて データをA4サイズにて 左から右へ データを表示したいのですが どのようにすれば表示できますか? ご教示よろしくお願いいたします

  • Accessのデータシートビューが縦書きに表示されてしまう

    突然、Accessのデータシートビューで、データが縦書きに表示されるようになってしまいました。つまり、左から右に文字が縦書きに表示されているのです。 どうやって普通の横書き表示に直せばいいですか? 横書き印刷ではなく、単に表示のことだけを聞いています。

  • Accessでフォーム上に 直前の データを表示させるには

    Accessでフォーム上で、データを入力するのに、一つ前のレコードの データを基参考に 次のデータを入力したいと思います。一つ前のレコードを そのフォーム上に表示させるには どうすれば良いのでしょうか? あるレコードのすべてのフィールドの値を表示させたいのです。

専門家に質問してみよう