0

需要你的帮助。我是一名学生,我正在VB.Net为我的会计课程项目做一个程序。现在,我对使用知之甚少,OleDB所以我需要你的帮助。

以下是详细信息:

  1. 数据库为MS ACCESS 2007( OleDB)
  2. 数据库表是tbl_login, tbl_product,tbl_transaction
  3. 形式是Form1,Form2和 1Module
  4. ComboBox值为Users, Product,Transaction
  5. 语言是VB

当我运行程序时,Form 1会出现一个登录表单 ( ),需要用户名和密码。当用户提交他的用户名和密码时,程序将检查它是否在名为的数据库表中匹配tbl_login。如果匹配,则继续下一个表格 ( Form 2)。在这里,存在 aListView和 a ComboBox。加载时,列表视图的默认内容是 的内容,tbl_login组合框的值为Users.

现在,我希望我的程序做的是,当我将组合框值更改为 时Products,列表视图项将是 的内容,tbl_products当组合框值为 时transactiontbl_transaction内容将出现在listview.

我将如何编码这个?

我真的很感谢你的帮助。谢谢。

4

2 回答 2

0

您尚未指定 VB.NET 版本,因此我假设为 .NET 4.0 运行时。我建议您阅读有关组合框事件、控件的 DataSource 属性的信息。您需要在组合框的 SelectionChanged 事件中放入代码以获取 SelectedValue,查询 tbl_transaction 表并分配 ListView 的 DatSource 属性。我不认为我应该添加更多,因为你应该为你的家庭作业工作。

于 2013-01-01T13:35:59.910 回答
0

解决了!我只是在某些领域进行了实验,我不知道究竟是什么解决了这个问题。:) 首先,我将表格字段的所有数据类型从数字更改为文本。其次,我修改了form2_load和combobox_selectedindexchanged中的一些代码。

前:

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    con.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source = ..\Accounting2.accdb"
    con.Open()
    ComboBox1.SelectedIndex = 0
    sSqlUser = "SELECT df, sdf, asdf FROM tbl_login ORDER BY df"
    sSqlProduct = "SELECT cv, xcv, zxcv FROM tbl_product ORDER BY cv"
    sSqlTransaction = "SELECT rt, ert, wert, qwert FROM tbl_transaction ORDER BY rt"
    sSql = sSqlUser
    Call FillList()
    Dim dt As New DataTable
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.SelectedIndex = 0 Then
        sSql = sSqlUser

    ElseIf ComboBox1.SelectedIndex = 1 Then
        sSql = sSqlProduct

    ElseIf ComboBox1.SelectedIndex = 2 Then
        sSql = sSqlTransaction

    End If
End Sub

然后:

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    con.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source = ..\Accounting2.accdb"
    con.Open()

    sSqlUser = "SELECT df, sdf, asdf FROM tbl_login ORDER BY df"
    sSqlProduct = "SELECT cv, xcv, zxcv FROM tbl_product ORDER BY cv"
    sSqlTransaction = "SELECT rt, ert, wert, qwert FROM tbl_transaction ORDER BY rt"
    ComboBox1.SelectedIndex = 0
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.SelectedIndex = 0 Then
        sSql = sSqlUser

    ElseIf ComboBox1.SelectedIndex = 1 Then
        sSql = sSqlProduct

    ElseIf ComboBox1.SelectedIndex = 2 Then
        sSql = sSqlTransaction

    End If
    Call FillList()
    Dim dt As New DataTable
End Sub
于 2013-01-02T04:02:43.713 回答