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

ACCESSのフォームで、コンボボックスによる入力をするところがあるのですが、ここで、前回選択(または入力)した値を次に入力するときの既定値にすることは可能でしょうか。可能でしたら、その方法を教授ください。

A 回答 (3件)

フォームを閉じても情報を残す必要がある場合は、そのフォーム以外にデータ(規定値)を記録しておくことが必要です。

いろいろ考え方はあるかと思いますが、一般的な方法として、(1)Public変数に代入する。(2)テーブルにデータとして保存する。 の二通りが考えられます。

(1)の方法は、レスポンスが速く、構文も比較的容易にできますが、データベースを閉じてしまうと規定値もクリアされてしまいます。
(2)の方法は、多少処理が煩雑で、応答も(1)に比べると劣りますが、Accessを一旦閉じても規定値は保存されています。

と言うことで少々複雑になりますが、ここでは (2) の方法を提案させていただきます。

まず、規定値情報を保存するためのテーブル(名前を「TextParameter」:文字列情報のパラメーター全般を保存するテーブル)を作ります。
これに [pName] と [pValue] の二つのテキスト型フィールド(名前はこれにこだわらなくても好みでいいです。)をつくって、最初のレコードの[pName]に、「コンボ規定値」と入れてください。([pValue]は空欄でけっこうです。)

前回お示した、プロシージャの Me![コンボ].DefaultValue ~ の次の行に、以下を挿入してください。
DoCmd.RunSQL "UPDATE TextParameter SET pValue = '" & Me![コンボ] & "' WHERE [pName]='コンボ規定値';"
(更新クエリーで、TextParameterテーブルの pValueフィールドに、規定値を書き込む操作です。)

フォームの Open(開く時)イベントに、以下を記述してください。
Me![コンボ].DefaultValue = "'" & DLookup("pValue", "TextParameter", "pName='コンボ規定値'") & "'"
(コンボボックスの規定値に、テーブルに保存してある値をセットする操作です。)

多少複雑になってしまいましたが、たぶん、以上でご希望のことが可能かと思います。

DoCmd オブジェクト、RunSQL メソッド、アクション(更新)クエリー、DLookup 関数、のあたりを、HELP で確認してみてください。
    • good
    • 0
この回答へのお礼

再度の回答ありがとうございます。
アドバイスを参考に頑張ってみます。m()m

お礼日時:2002/02/14 16:16

追加回答がないようですので、代わりに。



まず、HELPで DefaultValue プロパティと BeforeUpdate、AfterUpdate イベントについて調べてみてください。その上で、・・・

フォームをデザインビューで開いて、コンボボックスのイベントタブの更新後処理(更新前処理でもOKだと思います)からイベントプロシージャを開いて、以下のように記述してください。
(コンボ : コンボボックスの名前、 入力するデータが文字列でなく数値なら、前後の "'" & と & "'" は不要)

Private Sub コンボ_AfterUpdate()
Me![コンボ].DefaultValue = "'" & Me![コンボ] & "'" ←この行を打ち込む
End Sub

以上で、コンボボックスの規定値は、最後に入力したコンボボックスの値と同じになります。

この方法では、フォームをを一旦閉じると、規定値もクリアされてしまいます。
再度フォームを開いた際にも規定値が残っていることが必要なら、多少工夫が必要ですので、補足要求をしてください。

この回答への補足

ありがとうございます。
半ばあきらめかけていたので、嬉しいです。
>再度フォームを開いた際にも規定値が残っていることが必要
その通り、というかこれがしたいことなんです。よろしくお願いいたします。
HELP、見ておきます。

補足日時:2002/02/13 18:08
    • good
    • 0

コンボボックス.DefaultValue = コンボボックス


って更新後処理ぐらいのイベントでしてみてはいかがでしょう?

この回答への補足

回答ありがとうございます。
が、何分、ACCESSは初心者なもので、おっしゃっている意味がよく分からないのですが…。^^;

補足日時:2002/02/04 13:49
    • good
    • 0

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