2017-07-17 84 views
1

我正在用窗體創建我自己的Access應用程序,並且遇到了我無法解決的問題。我在編程方面相當新。MS Access修改列表框中的項目

我創建了一個表單來創建一個訂單,這一切都正常工作,並將partslist插入到數據庫中。問題是我想改變這個順序。我加載所有零件到列表框通過下面的代碼:(進行的查詢有點小,這只是舉例)

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

這也工作正常,但如果我想刪除或添加項目到ListBox它給了我一個錯誤:

Error

我的形式: A screen of my form FYI

我已經在堆棧溢出發現,這是不可能使用.AddItem.RemoveItem與使用查詢的ListBox(僅值列表)。但我找不到解決這個問題的替代方法。

回答

0

如您所述,您不能使用.AddItem.RemoveItem
而是修改RowSource

E.g.添加一個常數項

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

或以除去一些

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

更改列表框的.RowSource /組合框將自動重新查詢它。

0

由於無法直接修改ListBox中的數據,因此需要修改表中的數據並根據需要修改控件的.RowSource。

例如,要排除的項目,你可以這樣做:

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

然後.RowSource SQL會是這樣: