Accessコンボボックスに表示させる文字列

このQ&Aのポイント
  • Access2010のフォームにコンボボックスを設置し、年月の文字列を表示させる方法を教えてください。
  • 現在の年月を基準に一時的にテーブルを作成する方法がありますが、手間がかかります。
  • 登録されている年月しか表示されない場合、流動的な文字列を表示する方法はありますか?
回答を見る
  • ベストアンサー

Access コンボボックスに表示させる文字列

お世話になります。 Access2010 フォームにコンボボックスを設置し、そこに、  2014年9月  2014年8月  2014年7月    ・    ・    ・ と表示したいと考えております。 これらの文字列を予めテーブルに登録しておき、それをソースとして 表示したり、もしくはコンボボックスのプロパティで値リストに登録 しておけばよいかと思うのですが、例えば来月になったら「2014年10月」 も表示させる必要があり、その都度テーブルに追加したり、値リストを 追加するのは手間がかかります。 このように、流動的?な文字列を表示したい場合、どのように やればよいのでしょうか。 ※フォームを開く都度、現在の年月を基準に一時的にテーブル  を作成する? なお、ローカルテーブルに上記のような文字列(年月)をもっている テーブルがあるので、グループ化して降順?で表示すればよいかとは 思いますが、あくまでも登録されている年月しか表示されません。 例えば、今月の場合は先月分までしか登録されてないので、2014年8月は 表示できますが、2014年9月が表示できません。 ご教授の程、宜しくお願い致します。

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

  • ベストアンサー
回答No.2

> 勉強不足で大変恐縮ですが、このSQLは現在の年月から-0ヵ月、-1ヵ月、-2ヵ月・・・としたものを、yyyy年m月のフォーマットで昇順に表示している・・という認識でよろしいでしょうか。 はい、それでいいです。 Date関数、DateAdd関数、Format関数についてヘルプで調べるといいでしょう。

naoto0216
質問者

お礼

早速のご返信ありがとうございます。 大変勉強になりました。 ありがとうございました。

その他の回答 (1)

回答No.1

例えば、当月を含めて過去1年分の年月をコンボボックスのリストに表示するとして、 まず下記のような連番の入ったテーブルを作成します。 T_連番 (テーブル名) 連番 (数値型フィールド) -------- 0 1 2 ・ ・ ・ 11 コンボボックスの値集合ソースを下記のように設定します。 SELECT Format(DateAdd("m",-[連番],Date()),"yyyy年m月") AS 年月 FROM T_連番 ORDER BY 連番; これで、常に当月より過去1年分の年月が表示されます。 過去2年分なら 23 までの連番、過去3年分なら 36 までの連番、・・・をT_連番テーブルに入力します。

naoto0216
質問者

お礼

hatena1989さま 早速試したところうまくいきました! ありがとうございました。 勉強不足で大変恐縮ですが、このSQLは現在の年月から-0ヵ月、-1ヵ月、-2ヵ月・・・としたものを、yyyy年m月のフォーマットで昇順に表示している・・という認識でよろしいでしょうか。

関連するQ&A

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

  • アクセスでコンボボックスに表示されるリストの順番が狂ってしまう!

    アクセスでコンボボックスに表示されるリストの順番が狂ってしまう! アクセスのフォームでコンボボックスを使用しています。コンボボックスで表示されるデータは他のテーブルの値を表示させているんですが、その値が勝手に昇順?に並べ替えられてしまい困っています。テーブル作成時に入力した順番か、もしくは任意に表示させる方法はないでしょうか? ちなみにアクセス2000です。どうぞよろしくお願いいたします。

  • コンボボックスで

    コンボボックスで、あるテーブルを参照してリストを出す場合、リスト中になかった場合に、コマンドボタンを押せばテーブルの追加フォームが出てきて入力できるようにしています。この場合に、入力フォーム内で終了(保存)ボタンを押せば、自動的にコンボボックスの中に入り、かつもう一度選択しなくても表示されているような操作はできないものでしょうか?

  • ExcelVBA コンボボックスの表示

    お世話になります。 VBAユーザフォームのコンボボックスのリストにソースから追加しています。 ColumnCountを2に設定しているので、コンボボックスから選択するときにはちゃんと2列表示されるのですが、選択したあとにコンボボックスの表示に残るのは1列目だけなのです。 どのプロパティを変更したらいいのか見つかりません。 ご存知の方がいらっしゃいましたら、教えてください。 よろしくお願い致します。

  • Access コンボボックスの2列目が表示されない

    Accessでフォームを作っています。テキストボックス「列車名」に文字列を入力するとコンボボックス「列車コード」のデータが絞り込まれるようにVBAコードを書いていますが、「列車名」を空欄にすると「列車コード」の2列目が表示されません。表示されるようにするにはどうすれば良いですか。

  • コンボボックスの2列目の値を表示させる方法はありま

    アクセス2003です。 コンボボックスの2列目の値を表示させる方法はありますか? テーブル1には ID 会社名 1 山田建設 2 田中株式会社 といれ、 テーブル1をレコードソースとするフォームを作り、コンボボックスを設置し そのコンボボックスのプロパティは 値集合タイプ:テーブル/クエリ 値集合ソース:テーブル1 列数:2 にしました。 この場合、コンボボックスで値を選択した後は、一番左側の数字がコンボボックスに入力されますが 左から2列目の値を表示させる方法はありますか? IDと会社名のフィールドを順番を変えることなく、IDが左、会社名が右にしたいです。 エクセルで例えると http://www.moug.net/tech/exvba/0090021.html と同じようなことをアクセスで行いたいです。 プロパティではなくエクセルのようにVBAで配列を使うしかないのでしょうか?(コードもわかりませんが) よろしくお願い致します。

  • アクセス97のコンボボックスについて

    OSはACCESS97です フォーム上のコンボボックスに 2列 リスト表示できるようにしています。 1列目を選択するのに 2列目も表示させている状態です。 選択すれば1列目の値は取得できます。 今回 その同じ行の1列目と2列目を それぞれ別のテキストBOXに 格納することは できるのでしょうか? 例えば 1列目に A 2列目に AA とデータがあれば Aを テキストBOX1 に AAをテキストBOX2に 格納したいのです。 宜しくお願いします。

  • 【Access】コンボボックスの値の変更方法

    フォームにコンボボックスを配置し、下記の動作をさせたいと思ったのですが、1は出来たものの2が出来ませんでした(値集合ソースの中身は表示されるものの、選択してもコンボボックスに反映されませんでした)。 1. フォームオープン・・・データベースのcmb1の値より、対応する文字をコンボボックスに表示する。 2. コンボボックスの値の変更・・・プルダウンから値集合ソースに表示されている任意の値を選択し、コンボボックスに設定する。 その為、どうすれば値を変更できるようになるかアドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 なお、初期状態から下記を変更しております。 【テーブル】 テーブル名:tbl フィールド名:ID,cmb1 値:1,2 【フォーム】 フォーム名:form1(コンボボックスを一つ配置) フォームのレコードソース:SELECT Choose(tbl.cmb1,"A","B","C") AS nm_cmb FROM tbl WHERE (((tbl.ID)=1)); コンボボックス 列数:2 列幅:0cm;3cm コントロールソース:nm_cmb 値集合タイプ:値リスト 値集合ソース:1;A;2;B;3;C 連結列:2 上記の状態で起動時のコンボボックスの中身は"B"と表示されるものの、コンボボックスのプルダウンメニューを表示して値を変更しようとしても出来ない事が確認できると思います。 以上、よろしくお願いします。

  • ACCESS97のコンボボックスについて

    入社して、名刺を貰う機会が多い為、名刺を管理するものを初歩的な参考書を見てACCESS97で作りたいと思います。テーブルで数名の氏名・会社名・部署名・役職・住所を作りました。良く分からなかったので、この1つのテーブルを基にパラメータを使って検索する「検索用画面」と新しいレコードが表示される「新規入力画面」をクエリーとフォームを別々に作りました。検索用画面は、これで良しとします。しかし、新規入力画面は、同会社名が多いので、コンボボックスを作り今まで登録したものからも選べる様にもしたいです。新しいレコードでは、表示されませんが、▼で前のレコード(既に入力してあるデータ)に戻ると、エラーメッセージで「このフィールドに入力した値が不正です。例えば、数値型のフィールドに文字列を入力しました。」と出てきてしまいます。コンボボックスいうのは、コンボボックスウィザードで「テーブルまたはクエリーを表示する」を選び、表示させたいものを選ぶだけでは、いけないのでしょうか・・。くだらない質問で申し訳ありませんが、回答の方宜しくお願いします。

  • Accessレポートでコンボボックスが動かない

    Access2010のレポートでコンボボックスを使いたいのですが、コンボボックスが正しく表示されず困っています。 表示されないというのは、コンボボックスのリストを選択する逆三角形が表示されず、またリストも全く表示されません。つまりテキストボックスのように空のの四角い箱が表示されてしまいます。 表示したいリストはあるテーブルから引っ張っているのですが、全く同じことをリストボックスでやろうとするとすべての項目がうまく表示できることは確認しました。 またフォームの方ではコンボボックスをから項目が選択できることも確認できています。 レポートではコンボボックスが使えないような仕様になっているのでしょうか? お分かりになる方教えていただけますでしょうか?