2016-05-15 9 views
2

私は購入注文を入力するための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列がある。記録を残すとに戻ってきた後、次の処理が行われます

  1. インクが表示されていない、しかしステープラーが並びにインク、価格と合計の量です。
  2. 私はフィールドを押すと突然表示され、コードが正しく機能するように正しい項目がリストされたコンボボックスのリストが表示されます。
+1

これは実際にポイントに達することなく多くのテキストです。問題はどこだ? 'tblItems'テーブルに目的のデータが含まれていませんか?そのテーブルにはデータが入っていますが、 'CmbItem'は' RowSource'プロパティを設定してもエントリを表示していません。これは動作しますが、イベントハンドラは期待通りに呼び出されないので、コンボボックスは決してリフレッシュされません。エラーを特定して質問を更新して、どこでどのように役立つかを具体的に確認してください。 – Leviathan

+0

それはアクセスする必要があります、対応するタグがある方が良いでしょう – user3598756

答えて

0

私は何がここで起こることをかなり確信している:

  • あなたが戻ってアクセスがコンボボックスに以前入力した項目を表示しようとするが、ことができないため、既存のレコード
  • へ移動値は、次にForm_Current実行コンボボックスの値集合ソース
  • の一部ではなく、現在のサプライヤー
  • に値集合ソースを変更しますが、あなたはそれにクリックするまでそれをCmbItemピックアップしていません。

ソリューションは、値集合ソースを変更した後

Me!sfrmOrderDetail.Form!CmbItem.Refresh 

を追加する必要があります。

+0

ありがとう!何が起こったのか説明しています!説明してくれてありがとう、トリックをリフレッシュしました。 –

+0

@ K.Lifs:答えがあなたの問題を解決した場合、あなたは[それを受け入れる]ことができます(http://stackoverflow.com/help/someone-answers)。 – Andre

関連する問題