英文:
MS Access ListBox Selected item
问题
如何使Access中的列表框显示列表的特定值?
假设:我想显示“Alex”。
列表框的值如下:
ID 姓名
1 Tom
2 Peter
3 Alex
4 Susanne
通常情况下,可以使用以下代码:
Forms("Trade").Controls("Erfassung").Column(0) = 3 → 列表框显示“3, Alex”
但是,使用ADODB.Connection来填充列表框时,它不再起作用。
Dim DBSQL As New ADODB.Connection
Dim RSSQL As New ADODB.Recordset
DBSQL.ConnectionString = CONSTRING
DBSQL.Open
SQL = "SELECT [ID], [Name] FROM [Clients] ORDER BY [Name] ASC; "
RSSQL.Open SQL, DBSQL, adOpenKeyset, adLockOptimistic
Set Forms!Trade.Erfassung_Client.Recordset = RSSQL
RSSQL.Close
Forms("Trade").Controls("Erfassung").Column(0) -> 导致运行时错误 451
Forms("Trade").Controls("Erfassung").Value = 3 -> 列表框显示“4, Susanne”因为Susanne是排序后列表的第3个值
如何使列表框显示“3, Alex”?(而不是通过查找Alex的位置来实现的变通方法)
英文:
How can I make a listbox in access display a certain value of the list?
Assumtion: I want to display “Alex”
Listbox value are the following:
ID Name
1 Tom
2 Peter
3 Alex
4 Susanne
Normally it works with
Forms("Trade").Controls("Erfassung").Column(0) = 3 Listbox shows “3, Alex”
But using ADODB.Connection to fill the listbox its not working anymore.
Dim DBSQL As New ADODB.Connection
Dim RSSQL As New ADODB.Recordset
DBSQL.ConnectionString = CONSTRING
DBSQL.Open
SQL = "SELECT [ID], [Name] FROM [Clients] ORDER BY [Name] ASC; "
RSSQL.Open SQL, DBSQL, adOpenKeyset, adLockOptimistic
Set Forms!Trade.Erfassung_Client.Recordset = RSSQL
RSSQL.Close
Forms("Trade").Controls("Erfassung").Column(0) -> results in runtime error 451
Forms("Trade").Controls("Erfassung").value = 3 -> Listbox shows “4, Susanne” because Susanne is the 3rd value in the sorted List
How can I make the listbox display “3, Alex” ? (without the workaround figuring out which position Alex is)
答案1
得分: 1
如果它绑定到第一列(并且应该是这样),则设置其Value
属性:
Me!Erfassung.Value = 3
或者,如果来自外部:
Forms!Trade!Erfassung.Value = 3
英文:
If it is bound to the first column (and it should), then set its Value
property:
Me!Erfassung.Value = 3
or, if from outside:
Forms!Trade!Erfassung.Value = 3
答案2
得分: 0
If using ADODB to add items to a listbox, the listbox itself needs to be set to "Value List". Please refer to Microsoft's Documentation.
As Gustav mentioned, you just do:
Me!Erfassung.Value = "Alex".
Also, don't forget that listboxes are zero-indexed.
英文:
If using ADODB to add items to a listbox, the listbox itself needs to be set to "Value List". Please refer to Microsoft's Documentation
As Gustav mentioned, you just do
Me!Erfassung.Value = "Alex"
Also don't forget that listboxes are zero-indexed.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论