• ベストアンサー

access2000 フォーム上での期間指定

Access2000超初心者です。 お願い致します。 フォーム上で日付の期間指定をし、担当者の名前を入力するとその担当者の項目(メインテーブルに保存している何月何日の交通費やガソリン費)を抽出できるようにし、レコードをクリックすると詳細(サブテーブルに保存しているその日の行動)を抽出したいのですが、まず何からしたらいいのか見当がつきません。 説明がわかりにくいとは思いますが何卒宜しくお願い致します

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

次のコードは名簿テーブルから誕生会の対象者リストを作成する処理です。 参考にして下さい。 DoCmd.OpenReport "誕生会名簿", acViewPreview, , "[生年月日] >=" [開始日] and "[生年月日]<=" [終了日]

fine_coffee
質問者

お礼

shinkami様 回答ありがとうございます。 クエリからの抽出でできました。

その他の回答 (2)

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

フォームには 1.期間の始まりの年月日 2.期間の終わりの年月日(または1の日から1年、6ヶ月、1月指定とかもある。これも質問にはっきりして無い) 3。担当者名 4.交通費やガソリン費の別--その都度変わるのか固定か?この点はっきりしない。固定か? ゛が必要なのかな。 >レコードをクリックすると詳細(サブテーブルに保存しているその日の行動)を抽出したいのですが これは初心者には難しいと思うので、第2段階として次に学習してはどうかな。 テーブルのテの字も質問異で無い。そんな状態では準備不足かと。 サブフォームは見て知っているのだろうが、サブテーブルというのは? 概念上の問題で、関連付けで解決する問題では。 http://office.microsoft.com/ja-jp/access-help/HP005236216.aspx とか  学習では上級な分野なので、解説書の当該項目でも読んで構想を固めてはどうですか。 ーー クエリでまず A.。使用日フィールドに対し、1.2のBetweenで B.。担当者フィールドで担当者名で C。費目フィールドで費目指定で(複数をOR条件?) 抜き出して初めは表テーブル形式で結果を出して確認。 次に抽出結果をフォームへ表示方式で やってみるべきと思う。 その他は別質問に改めて質問したら。

fine_coffee
質問者

お礼

imogasi様ありがとうございます。 日報入力という一つのフォームがあります。 日付や担当者や交通費を入力するところがあり、そのデータはテーブルAに保存され、一日の行動はテーブルBに保存されます。 新フォームで何月何日~何月何日と期間を指定し、担当者を入力すると指定した期間のテーブルAの諸経費が反映されるようにし、クリックするとテーブルBからの詳細が反映できるようにしたいのです。

  • vteliang
  • ベストアンサー率23% (16/69)
回答No.1

http://www.seta.media.ryukoku.ac.jp/manual/office/access/basic/what... 顧客所有の機械に不具合が生じた場合、その修理期間に顧客へ貸出す代替機の履歴をアクセス(Access2003)を使って管理しています。 ところが、次のような時はどのような方法を取ればよいのかわからなくて煮詰まっています。 よいアドバイスをいただきたいと思い投稿をさせていただきます。 次から代替機のことは貸出機と記します。 貸出機は20台あります。 その20台を複数のユーザーに貸し出しています。 台によっては5人に貸している機械もあれば、まったく貸出したことがない機械もあります。 それを貸出機の製造番号ごとにグループにまとめて、 そのうちの貸出日がもっとも新しいものを表示させたいのです。 レコード1件につき入力順によって貸出履歴IDを振っているので、 そのIDがグループの中で最新のものでもいいのです。 要は、製造番号ごとに貸出中なのか待機中なのか一目でわかればいいのです。 集計クエリで「貸出機製造番号」をグループ化にして、他の項目は先頭を使ってみましたが、この先頭と最後という集計方法はHDに記録した順番で変動してしまうので正しい情報を得ることが出来ませんでした。 関数やVBAなどを使ったら、解決されないでしょうか? テーブルの構造は次のようになっています。 仮にテーブルAとします。 [フィールド名]・・・・・[データ型] 貸出機管理ID・・・・・・オートナンバー ユーザNO・・・・・・・・・・テキスト型 貸出機製造番号・・・・・テキスト型 故障機製造番号・・・・・テキスト型 貸出日・・・・・・・・・・・・日付/時刻型 故障機受領日・・・・・・・日付/時刻型 修理発送日・・・・・・・・日付/時刻型 修理返却日・・・・・・・・日付/時刻型 故障機発送日・・・・・・・日付/時刻型 返却日・・・・・・・・・・・・日付/時刻型 担当者ID・・・・・・・・・・テキスト型 備考・・・・・・・・・・・・・・メモ型 上記のテーブルAに別のテーブルBからユーザ名を関連付けてクエリを作りたいです。 また、貸出日に日付があり返却日に日付がなければ"貸出中"、http://b.key-chains.net/a.php?key=access2000+%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E4%B8%8A%E3%81%A7%E3%81%AE%E6%9C%9F%E9%96%93%E6%8C%87%E5%AE%9A 貸出日と返却日の両方に日付が入っている、もしくは、まったく入ってなければ"待機中”という[現状]の表示をするフィールドをそのクエリ上に設けたいです。 そして、そのクエリを使って[貸出中]と[待機中]の一覧表が欲しいです。 なお、貸出機の製造番号は次のような形式になっています。 99XVC 00XVA 01XVB 製造年の西暦の下2桁+アルファベット3桁の組み合わせになっています。 1900年代から2000年代のものが混在しており、昇順に並べ替えたいので、並べ替える式のフィールドも設けています。 <クエリ> フィールド名・・・・・・・・・テーブル 貸出機管理ID・・・・・・・・・テーブルA・・・ ユーザNO・・・・・・・・・テーブルA ユーザ名・・・・・・テーブルB 貸出機製造番号・・・・・・・・・テーブルA→製造番号毎にグループにまとめる 故障機製造番号・・・・・・・・・テーブルA 貸出日・・・・・・・・・テーブルA 故障機受領日・・・・・・・・・テーブルA 修理発送日・・・・・・・・・テーブルA 修理返却日・・・・・・・・・テーブルA 故障機発送日・・・・・・・・・テーブルA 返却日・・・・・・・・・テーブルA 担当者ID・・・・・・・・・テーブルA 備考・・・・・・・・・テーブルA 機械の現状・・・フィールドに条件式を入れる 貸出機製造番号を並替えるためのフィールド・・・並べ替えの条件式を入れる このような構造なのですが、皆様だったらどのような方法を取られますか? 製造番号毎に最新のレコードだけを表示させる所以外は問題なく解決されています。 この内容と似た質問を過去に何度か投稿させていただいています。 数名の方からいくつかの方法を教えていただき、試しているところですが、解決に至らず、より詳しい情報を載せて質問を再投稿させていただきます。 前の質問を締め切らない状態で、再投稿することは、お答えくださった回答者の方には大変、失礼なことをしており申し訳なく思います。 この場をお借りしてお詫びさせていただきます。

参考URL:
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1162482216

関連するQ&A

  • Access2003 合計値の求め方について

    Acdess超初心者です。ご存知の方がいらっしゃいましたらお教え下さい。 Access2003で請求書を作成しております。 メインテーブル 宛名、敬称、発行日、請求番号、件名、課税区分、小計、消費税、合計 サブテーブル  請求番号、項番、工事名、数量、単価 サブテーブルを基に作成したクエリ 請求番号、項番、工事名、数量、単価、金額 メインテーブルの請求番号とサブテーブルの請求番号は1対多のリレーションを組んでいます。 メインテーブルとクエリを基にフォームを作成して、メインフォーム(レコードソースはメインテーブル) 上にサブフォーム(レコードソースはクエリ)を配置しています。 サブテーブルの金額の合計をメインフォーム上の「小計」で求めたいのですが、方法が分かりません。 どのように作成するとメインフォーム上の「小計」でサブフォームの金額合計を求めることができるか お教え下さい。 初歩的な質問で申し訳ありませんが何卒よろしくお願い致します。

  • 期間指定して抽出したいんです

    Access2002で、日付が入ったテーブルを作りました。 フォームに、日付1と日付2を入れるテキストを作り、日付1~日付2の間にあるレコードを抽出したいんです。 マニュアル本やネットで探していますが、なかなかできません。 友人にこのサイトを教えてもらいました。 教えて頂けると助かります。

  • Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?

    フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • Access フォーム検索

    お世話になっております。 フォームに日付を入力した時に、フィールドに同じ日付があった場合、そのレコードのデータを表示するにはどのようにすればいいのでしょうか? テーブルは、[日付]を主キーにしたクエリテーブルです。 よろしくお願い致します。

  • アクセス2003のカレンダー使用について教えてください。

    アクセス2003のカレンダー使用について教えてください。 選択クエリがレコードソースの帳票フォームがあります。日付を入力して、その日付のレコードのみ抽出するようにいているのですが、これをカレンダーの日付と連動させて、そのフォームを開いたら自動でその日付のレコードのみ抽出できるようにしたいです。マクロを使って(値代入)ためしてみたのですが、うまくできませんでした。カレンダーはメインフォーム上にあり、別フォームでは簡単に値代入できています。ただ、選択クエリのように、抽出条件のところには代入は無理なのでしょうか?どなたかよろしくお願いいたします。。。

  • Accessのリレーション

    一つのメインテーブルと4つのサブテーブルを作成し、リレーションシップを作成しました。 ところが、一つだけ連動しない(入力できない)サブテーブルがあります。 入力して閉じようとすると以下のようなメッセージが出てしまいます。 「テーブル 'T:基本データ' にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことはできません。」 ちなみにこの 'T:基本データ' がメインテーブルです。 どのようにしたらきちんと作動するようになりますでしょうか? ちなみに他の3つはきちんと連動していて入力も可能です。

  • Accessフォームの操作で

    2つの別々なフォームがあります。 それぞれのフォームの基になっているテーブルが別々にあります。 ひとつはデータが入力されているテーブルで もうひとつはフォームから入力していく空のテーブルです。 データが入力されているフォームでは、データ抽出するサブフォームを持っていて、 そこにあるレコードセレクタをダブルクリックすると もうひとつの空のテーブルから作成したフォームにデータを入力していくようにしたいんですけど、うまくいきません。 乱文でわかりにくいとは思います。 ご迷惑をおかけしますが教えてください。 よろしくお願いします。

  • Access フォームのコンボボックスでの検索

    Access2010で質問です。 フォーム上のコンボボックスで レコードを検索・抽出したいと考えています。 以下のような事をやりたい場合、 フォームやVBAをどのように 作ればよろしいのでしょうか? お忙しいところたいへん恐れ入りますが、 ご教授いただけますと助かります。 ======テーブルの説明===== 以下の3つのテーブルがあります。 ◆メインテーブル |No|職業 |住所|年齢|名前| -------------------------- |01|会社員|東京| 31|品川| |02|自営業|埼玉| 30|川口| |03|会社員|東京| 30|渋谷| |04|自営業|埼玉| 20|戸田| |05|自営業|埼玉| 20|熊谷| |06|自営業|東京| 30|太田| ◆職業テーブル |No|職名 | ----------- |01|自営業| |02|会社員| |03|無職 | ◆住所テーブル |No|地名| --------- |01|東京| |02|埼玉| |03|千葉| そして、各テーブルは 以下のようにリレーションされています。 ・職業テーブルはメインテーブルの「職業」へリレーション ・住所テーブルはメインテーブルの「住所」へリレーション =====検索方法の説明===== 検索はフォーム上で行いたいです。 フォームに以下のようなコンボボックスを2つ作成します。  コンボボックス1・・・職業が選べます  コンボボックス2・・・住所が選べます それぞれのコンボボックスで条件を選んだ後、 「実行」ボタンを押すことで検索結果を表示させたいです。 ◆両方のコンボボックスが空欄だった場合 「検索条件を選んでください」との メッセージボックスを表示させたいです。 ◆複数のレコードが抽出された場合にやりたい事 各レコードの「年齢」を比較して 値が一番小さいレコードだけが 抽出されるようにしたいです。 「年齢」が同じ値だった場合(競合した場合)は 「No」の値が小さいレコードを抽出したいです。 ◆検索結果の表示方法 抽出されたレコードの「名前」だけを フォームに表示したいです。 =====検索結果の例(やりたい事)===== ◆事例1 コンボボックス1=「会社員」 コンボボックス2=「東京」 検索結果=「渋谷」 01と03が検索にヒットしますが 「年齢」の値が小さい方(03)だけを 抽出されるようにしたいです。 ◆事例2 コンボボックス=「自営業」 コンボボックス=「埼玉」 検索結果=「戸田」 まず02と04と05が検索にヒットしますが 02の「年齢」の値が大きいので除外します。 次に04と05の「年齢」の比較ですが、 同じ値になっています。 したがって「No」の値が小さい04が 抽出されるようにしたいです。 ==================== 以上です。 できるだけ詳細に書いたつもりですが、 不足な情報がありましたらご指摘ください。 なにとぞよろしくお願いいたします。

  • アクセスのサブフォーム

    よろしく、お願いします。 アクセスのサブフォームをVBAでテーブルに登録する方法を教えてください。 フォームからメインテーブルとサブテーブルへ、ボタン一つで同時に登録したいのです。 よろしく、お願いします。

専門家に質問してみよう