私は購入注文を入力するためのMS Accessフォームを持っています。それは、一般的な注文の詳細 - サプライヤ名、日付、およびユーザが注文した実際のアイテムを置くデータシートビューのサブフォームを持つメインフォームです。サブフォームの最初のフィールドは項目を選択するコンボボックスで、次のフィールドは注文された金額で、次に価格と合計フィールドが自動的に計算されます。vboxをロードした後にcomboxの値が表示されない
メインフォームで選択したサプライヤに属するアイテムのみをコンボボックスに表示したかったのです。私は新しいレコードに変更したときにそれをやり直す必要がありますので、私もForm_Current()
event-にこれを入れて、次のコード
Private Sub CmbSupplier_Change()
Me!sfrmOrderDetail.Form!CmbItem.RowSource = "SELECT Items.ID, Items.Product, " _
& " Items.Supplier" _
& " FROM tblItems" _
& " WHERE ((Items.Supplier)= " _
& Me.CmbSupplier & ");"
End Sub
で正常にこれをしませんでした。
しかし、いくつかの注文を入れた後、私は入力したものをチェックするためにフォームの戻るボタンを使って以前の注文に戻り、残りの情報が残っている間に、items
フィールド(コンボボックス)サブフォームの最初のレコードが空でした。追加の行が入力されました。カーソルで空のフィールドに移動すると、リフレッシュされ、値が入力されます。
ちょうどわかりました。たとえば、私の最初の注文サプライヤはです。ステープルズです。私は私のsubfrom - のインクの、のステープラーののペーパーの3列がある。記録を残すとに戻ってきた後、次の処理が行われます
- インクが表示されていない、しかしステープラーと紙が並びにインク、価格と合計の量です。
- 私はフィールドを押すと突然表示され、コードが正しく機能するように正しい項目がリストされたコンボボックスのリストが表示されます。
これは実際にポイントに達することなく多くのテキストです。問題はどこだ? 'tblItems'テーブルに目的のデータが含まれていませんか?そのテーブルにはデータが入っていますが、 'CmbItem'は' RowSource'プロパティを設定してもエントリを表示していません。これは動作しますが、イベントハンドラは期待通りに呼び出されないので、コンボボックスは決してリフレッシュされません。エラーを特定して質問を更新して、どこでどのように役立つかを具体的に確認してください。 – Leviathan
それはアクセスする必要があります、対応するタグがある方が良いでしょう – user3598756