2017-07-17 11 views
1

フォームを使用して独自のAccessアプリケーションを作成していますが、解決できない問題が発生しました。私はかなり新しいプログラミングです。MS Accessリストボックス内の項目を変更します

オーダーを作成するためのフォームを作成しましたが、これはすべて正常に動作し、データベースにパーツリストを挿入します。問題は、この注文を変更したいときです。私は、次のコードを経由して、リストボックスにすべての部品をロードします(クエリが少し小さく、それは一例です)

Forms!VerkoopWijzigen!lbOnderdelen.RowSourceType = "Table/Query" 
Forms!VerkoopWijzigen!lbOnderdelen.RowSource = "SELECT * FROM parts WHERE PartID=" & PartID & "" 

また、これは正常に動作しますが、私はリストボックスに項目を削除したり、追加したい場合それは私にエラーを与える:

Error

マイ形式: A screen of my form FYI

私はすでに.AddItemとを使用することはできないことをスタックオーバーフローで発見には、クエリ(値リストのみ)を使用したListBoxがあります。しかし、私はこの問題を解決する別の方法を見つけることができませんでした。

答えて

0

ご指摘のように、.AddItem.RemoveItemは使用できません。
代わりにRowSourceを変更してください。

など。一定の項目を追加する

RowSource = "SELECT * FROM parts WHERE PartID=" & PartID & _ 
      " UNION ALL SELECT 47, 'Bamboozle' FROM aDummyTableWithOneRecord" 

またはリストボックス/コンボボックスの.RowSourceを変更するいくつかの

RowSource = "SELECT * FROM parts WHERE PartID=" & PartID & _ 
      " AND foo <> 'Bamboozle'" 

を削除するには、それを自動的に再クエリします。

0

ListBoxのデータを直接変更することはできないため、テーブルのデータを変更し、必要に応じてコントロールの.RowSourceを修正する必要があります。

たとえば、項目を除外するために、あなたがこれを行うことができます:

'Mark excluded 
CurrentDb.Execute "UPDATE parts SET Excluded=True WHERE PartID=" & PartID 

を次に.RowSource SQLは次のようになります:

関連する問題