プロが教える店舗&オフィスのセキュリティ対策術

Accessのコンボボックスで関数を使用したいのですが、無理でしょうか?
例えば、「りんご」または「みかん」を選択するコンボボックスの場合、
値集合タイプ→値リスト
値集合ソース→"りんご";"みかん"
で出来ますよね。

今回作りたいのは、「前月」と「当月」と「次月」を選択するコンボボックスです。(PCのシステム日付を「当月」にして、その前後1ヶ月を「前月」と「次月」にしたい)
値集合タイプ→値リスト にして
値集合ソース→の中でDate関数を使おうとしているのですが、
実際にやってみるとそのまま「Date()」と表示されてしまいます。

やはりVBAを使わないと無理でしょうか?
おわかりの方、回答よろしくお願い致します。

A 回答 (2件)

>やはりVBAを使わないと無理でしょうか?


そうでしょうね。だけど、なぜ「前月」「当月」「翌月」ではダメなんですか?

どうしても関数だけで乗り切る方法としては、コンボボックス(コンボ1)の値集合ソースを[ -1;"前月";0;"当月";1;"翌月" ]にして、テキストボックスを作成しコントロールソースに[ =Month(DateAdd("m",[コンボ1],Date())) ]とすればテキストボックスにはお望みの月が表示されます。その辺の応用で何とかなりませんか?

この回答への補足

早速の回答ありがとうございます。
教えていただいたとおり、コントロールソースと値集合ソースに指定してみました。
結果、「-1」「前月」「0」「当月」「1」「翌月」が6行表示されました。私のやり方がおかしいのかなぁ。
「2007/08」「2007/09」「2007/10」が3行表示されるはずなんですよね。
よろしければ再度回答いただけると助かります。
(あと、「翌月」でOKです。表現の違いです。すみません。)

補足日時:2007/09/11 16:51
    • good
    • 0

違います。

コンボボックスには
-1 前月
0  当月
1  翌月
という3行表示されます。列を1のままにしてませんか?

「2007/08」「2007/09」「2007/10」がVBAを使用しないと表示できないだろうから、代替案としてコンボボックスには「前月」「当月」「翌月」というのを参考にしながら-1,0,1,という値を入力してもらうことになり、別に作ったテキストボックスに月が表示されるようになっているという仕組みを提案したまでです。ご理解頂けましたか?
    • good
    • 0
この回答へのお礼

おっしゃるとおりです。
列を1のままにしておりました。私の初歩的なミスです。

そして、「2007/08」など具体的な年月が表示されるのではないかというのは私の都合の良い解釈でした。
初心者でもできるような別の方法を提案していただいたのですね。
理解できました。

ご丁寧に2度も回答いただいて、ありがとうございました。

お礼日時:2007/09/12 09:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!