You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在从Access数据库填充的VB组合框顶部新增一行且不修改数据库

实现方法

你只需要在数据填充到内存DataSet之后、绑定到组合框之前,往对应的DataTable中插入虚拟行即可,该操作仅在本地内存执行,不会修改Access数据库内容,修改后代码如下:

myConnToAccess = New OleDbConnection(myVariables.myStrConnectionString)
myConnToAccess.Open()
ds = New DataSet
tables = ds.Tables
da = New OleDbDataAdapter("SELECT DISTINCT ProcUserName FROM Processes ORDER BY ProcUserName", myConnToAccess)
da.Fill(ds, "Processes")

' 新增代码:在内存表第一行插入通配符选项
Dim wildcardRow As DataRow = ds.Tables("Processes").NewRow()
' 可自定义显示文本,需要用*作为通配符的话直接赋值为"*"即可
wildcardRow("ProcUserName") = "不限制"
ds.Tables("Processes").Rows.InsertAt(wildcardRow, 0)

Dim view1 As New DataView(tables(0))
With cboUserID
    .DataSource = ds.Tables("Processes")
    .DisplayMember = "ProcUserName"
    .ValueMember = "ProcUserName"
    .SelectedIndex = 0
    .AutoCompleteMode = AutoCompleteMode.SuggestAppend
    .AutoCompleteSource = AutoCompleteSource.ListItems
End With
myConnToAccess.Close()

后续查询适配

获取组合框选中值后做简单判断即可:

  • 若选中值为你设置的通配符选项(比如上面的不限制或者*),要么移除该查询条件,要么构造ProcUserName LIKE '*'的查询逻辑
  • 若为其他值,正常带入参数执行查询即可

内容的提问来源于stack exchange,提问作者Ross from Brooklin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:24:05