需要你的帮助。我是学生,我正在为我的会计课程项目开展VB.Net
计划。现在,我对使用OleDB
知之甚少,所以我需要你的帮助。
以下是详细信息:
MS ACCESS 2007
(OleDB
)tbl_login
,tbl_product
,tbl_transaction
Form1
,Form2
和1 Module
ComboBox
值为Users
,Product
,Transaction
VB
当我运行该程序时,将出现一个登录表单(Form 1
)并需要用户名和密码。当用户提交他的用户名和密码时,程序将检查它是否与名为tbl_login
的数据库表中的匹配。如果匹配,则继续下一个表单(Form 2
)。此处,存在ListView
和ComboBox
。加载时,列表视图的默认内容是tbl_login
的内容,组合框值为Users
。
现在,我希望我的程序要做的是,当我将组合框值更改为Products
时,listview项目将是tbl_products
的内容,当组合框值为transaction
时,tbl_transaction
内容将显示在listview
。
我将如何编写此代码?
我非常感谢你的帮助。感谢。
答案 0 :(得分:0)
您尚未指定VB.NET版本,因此我将假设.NET 4.0运行时。我建议你阅读有关组合框事件,控件的DataSource属性的信息。您需要将代码放在组合框的SelectionChanged事件中以获取SelectedValue,查询tbl_transaction表并分配ListView的DatSource属性。我不认为我应该添加更多,因为你应该为你的作业工作。
答案 1 :(得分:0)
解决!我只是尝试了一些方面,我不知道究竟是什么解决了这个问题。 :)首先,我将表格字段的所有数据类型从Numbers更改为Text。其次,我修改了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