Visual Basic-使用组合框将Access表中的数据填充到文本框

时间:2015-10-19 13:26:25

标签: vb.net ms-access combobox

我目前正在制作一个表格,用于输入新的"订单"并且想知道如何使用组合框从Access表中选择已填写的订单详细信息,以便将信息发送回文本框以供审阅或修改。

我可能没有非常清楚地解释我想要的内容所以我在表单下面添加了一张图片(Gyazo链接),你可以在顶部看到有组合框。如果从组合框中选择现有数据,我希望所有其他文本框都填充现有数据,但是对于我的生活,不能想我会怎么做。

https://gyazo.com/5e1c8df5311ce75c421bbe0e9c4ccd0a

非常感谢任何帮助,提前谢谢!

1 个答案:

答案 0 :(得分:1)

在背后的代码中,您必须使用组合框的“SelectedIndexChanged”'事件。在该功能内部,您可以将文本框文本更改为您喜欢的内容。例如,如果我们有一个名为cmbTest的combox和一个名为txtTest的文本框:

Private Sub cmbTest_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbTest.SelectedIndexChanged
    txtTest.Text = "whatever text you want"
End Sub

您可以使用选择语句来决定基于组合框使用的文本,例如:

Private Sub cmbTest_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbTest.SelectedIndexChanged

    Select Case cmbTest.SelectedIndex
        Case 1
            txtTest.Text = "The Selected index is 1"
        Case 2
            txtTest.Text = "The Selected index is 2"
        Case 3
            txtTest.Text = "The Selected index is 3"
    End Select

End Sub

您可以沿着这些行执行某些操作来访问访问数据库中的数据(显然,您需要将sql语句替换为访问数据库中的任何表/列):

    Dim dt As New DataTable
    Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\PATH_TO_MDB_FILE\db1.mdb;")

    Try

        cn.Open()
        Dim Str As String = "SELECT * FROM yourTableName WHERE columnName = '" & ComboBox1.SelectedValue.ToString & "'" ' Or whatever SQL statement you want
        Dim cmd As New OleDbCommand(Str, cn)
        dt.Load(cmd.ExecuteReader())
    Catch
        'handle error
    End Try
    cn.Close()

然后,您可以使用数据表访问要放入文本框的文本,例如:

txtTest.Text = dt.Rows(0).Item("ColumnName").ToString()

我希望有所帮助,并且我理解你想要的东西。