0

君の力が必要。私は学生VB.Netで、会計クラスのプロジェクトのプログラムを行っています。使い方についての知識がほとんどないOleDBので、助けてください。

詳細は次のとおりです。

  1. データベースはMS ACCESS 2007( OleDB)
  2. データベース テーブルはtbl_login、、、tbl_producttbl_transaction
  3. フォームはForm1Form2および 1Module
  4. ComboBox値はUsers、、、ProductTransaction
  5. 言語はVB

プログラムを実行すると、ログイン フォーム ( Form 1) が表示され、ユーザー名とパスワードが必要になります。ユーザーが自分のユーザー名とパスワードを送信すると、プログラムはそれが という名前のデータベース テーブルで一致するかどうかをチェックしますtbl_login。一致する場合は、次のフォーム ( ) に進みますForm 2。ここに aListViewと aComboBoxが存在します。読み込まれると、リストビューのデフォルトのコンテンツは のコンテンツでtbl_loginあり、コンボボックスの値はUsersです。

ここで、プログラムに実行させたいのは、コンボボックスの値を に変更するProductsと、リストビュー項目が の内容にtbl_productsなり、コンボボックスの値がの場合transactiontbl_transaction内容が に表示されることlistviewです。

これをどのようにコーディングしますか?

私は本当にあなたの助けに感謝します. ありがとう。

4

2 に答える 2

0

解決しました!いくつかの領域で実験しただけで、何が問題を正確に解決したのかわかりません。:) まず、テーブルのフィールドのすべてのデータ型を数値からテキストに変更しました。第二に、form2_load とコンボボックス_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 に答える
0

VB.NET のバージョンを指定していないので、.NET 4.0 ランタイムを想定します。コントロールの DataSource プロパティであるコンボボックス イベントについて読むことをお勧めします。SelectedValue を取得し、tbl_transaction テーブルをクエリして、ListView の DatSource プロパティを割り当てるには、コンボボックスの SelectionChanged イベントにコードを配置する必要があります。あなたは宿題をしなければならないので、これ以上追加する必要はないと思います。

于 2013-01-01T13:35:59.910 に答える