こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

access,フォームで最新のコンボ内容が反映不可

フォーム入力時、顧客や商品データが無い場合、フォームを開いたままで、そのテーブルを開き、顧客や商品データを入力、閉じます。
フォームでは、顧客や商品データはコンボボックスで選ぶ用にしていますが、それにテーブルに新たに入力したそのデータが出てきません。
フィールド→更新、やフォームを閉じ開きすれば、現れます。
これを、例えばボタンを作成し、テーブルにデータ追加後、ワンクリックで、フォームのコンボボックスに新入力データを反映させるにはどうすれば良いのでしょうか(SQLの方が良いか?)。
また、フォームのコンボボックスのデータは、フォームを開いた時のテーブルやクエリのデータそのままで、コンボボックス選択時に再読み込みなどはしないのでしょうか?
正確にはコンボボックスのデータは順の関係でクエリで整順させたものです。
access2000でwindows2000です。
宜しくお願いいたします。

投稿日時 - 2006-12-27 12:01:07

QNo.2628389

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

<訂正>
X フォーム[Test]を閉じた場合に
O フォーム[ItemAdd]を閉じた場合に

投稿日時 - 2006-12-28 08:48:34

<Test>
ID  Field_1
1   Item_1
2   Item_2
3   Item_3

を[コンボ_Items]で表示しているフォーム[Form1]があります。

Private Sub コマンド_Add_Click()
On Error Resume Next
  DoCmd.OpenForm "ItemAdd", , , Null
End Sub

で、<Test>へのID=4、Field_1='Item_4' を追加するフォーム[ItemAdd]をオープン。
フォーム[Test]を閉じた場合に[コンボ_Items]に4つのデータを表示するには?
との質問かと思います。

Private Sub Form_Close()
On Error Resume Next
  Forms("Form1").Controls("コンボ_Items").Requery
End Sub

この場合、コンボアイテム追加フォームを閉じる際にコンボボックスを更新させるといいです。

投稿日時 - 2006-12-28 08:45:53

ANo.2

質問のようなことをする場合の定石です
追加入力はテーブルで行うのではなく、入力用フォームから行います
コンボのNotInListイベントに下のようなコードを書きます

Private Sub 品名コード_NotInList(NewData As String, Response As Integer)
Dim NewCategory As Integer
'入力されたものを新規登録するか確認
NewCategory = MsgBox("新規の商品として登録しますか?", vbYesNo + vbQuestion + vbDefaultButton1, "新規の商品")

If NewCategory = vbYes Then
'入力されたものを再クエリに備えて削除
DoCmd.RunCommand acCmdUndo
End If
DoCmd.OpenForm "h商品", acNormal, , , , acDialog, NewData
Response = acDataErrAdded
End Sub

入力用フォームの開くときイベントに下のコードを書きます

Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
Me.品名 = Me.OpenArgs
End Sub

入力用フォームを閉じれば入力された状態から作業を続けられます
再クエリは必要ありません

投稿日時 - 2006-12-27 16:16:42

ANo.1

> コンボボックス選択時に再読み込みなどはしないのでしょうか?

リストは自動では更新されませんので、「再クエリ(Requery)」を使用します。

いわゆるマクロで組んでいるのでしたら、
 1)「アクション」に「再クエリ」を設定
 2)画面左下の「コントロール」引数にコンボボックス名を指定
コードで組んでいるのでしたら、
 コンボボックス名.Requery
をコマンドボタンのクリック時イベントに設定してやればOKです。

または、コマンドボタンは作らずに、コンボボックスのフォーカス
取得後イベントでもいいと思います。

投稿日時 - 2006-12-27 12:29:03

あなたにオススメの質問