.net - 使用 VB.net 和 excel(组合框和搜索)

标签 .net vb.net excel combobox oledb

编程新手,需要在VB中制作程序以在后台与Excel交互

想法是有两个组合框,一个“国家”,另一个“城市”(如果选择国家,城市列表将减少到该国家;如果选择城市,将自动选择国家);

我有一个 DataGridView,它显示 excel 电子表格中的两列,即人的名字和姓氏。

因此,给定城市或国家/城市,将显示居住在该国家/地区的人员列表。

此外,我正在尝试制作一个搜索框,当您在文本字段中输入内容时,根据您迄今为止输入的内容,它将过滤 GridView 中的名字(包含您输入的内容)。

到目前为止,我已经设法让其他事情正常工作,例如具有不同选项的单选按钮和复选框。

我找不到与组合框和搜索字段有关的任何东西(没有按钮,因此需要进行“实时”过滤过程)。

我对 SQL 很满意,所以到目前为止我一直在使用 sql 将查询发送到 excel 并检索 GridView 的信息。

能否请你帮忙? (可能会提供我应该如何编码的模板......)

我正在使用 Visual Basic 2012 和 OleDB 4.0(如果我没记错的话)进行连接。

鉴于下面的评论,我为搜索栏找到的解决方法是创建一个按钮,然后使其尽可能小并通过“将其发送到后面”将其隐藏在搜索栏后面,因为它看起来不可见完全禁用它...

然后我为按钮使用了以下代码:

    Private Sub BtSearch_Click(sender As Object, e As EventArgs) Handles BtSearch.Click

    Try
        FillSearchResults("SELECT First_Name, Last_Name FROM [Database$] WHERE Country LIKE '%" & Country.Text & "%'")
        Country.Text = dt.Rows(0).Item(1)

    Catch ex As Exception
        MsgBox("Not Found")
    End Try

End Sub

对于文本字段(当用户按 Enter 时出现搜索结果):
Private Sub CountrySearch_TextChanged(sender As Object, e As EventArgs) Handles CountrySearch.TextChanged

    Me.AcceptButton = BtSearch

End Sub

下一步:我可能会尝试应用过滤器,这样用户就不必按 Enter 来更新 GridView

我将在此处发布任何开发,以便按照建议,如果其他人有同样的问题,请更清楚地看到后续...

最佳答案

您可以申请FilterBindingSource对于 DataGridView .您可以将该代码放在 ComboBox 的事件处理程序中。的SelectedIndexChanged事件:

Private Sub myComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles myComboBox.SelectedIndexChanged
    bindingSourceForMyDataGridView.Filter = 
        "SomeColumn LIKE '%" & myComboBox.SelectedValue & "%'"
End Sub
ComboBox 还有其他处理程序可能更适用,例如 SelectedValueChangedTextChanged .还有其他值可能更适用,这取决于 ComboBox正在填充,例如 .Text.SelectedText .

关于.net - 使用 VB.net 和 excel(组合框和搜索),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29747123/

相关文章:

java - 在 Java 中检索我的文档路径

.net - 使用VB.Net捕获所有键盘事件

.net - .NET多线程同步时钟与监视器

c# - MVC 4 WebAPI 对不可为空类型的验证

c# - 更改观察到的集合时防止自回调

c# - 在 C# 中正确处理对象层次结构

.net - 如何打破这个字符串并按版本号排序

php - 将 mySQL 导出到 excel 或 csv

excel - 使用 SendKeys 选择单元格

excel - excel 的 SUMPRODUCT 背后的数学函数到底是什么?