如何从组合框中获取选定的选项,以在下一页的文本框中显示该选项的信息?

问题描述 投票:0回答:1

抱歉,很难用语言表达。 我正在为一个学校项目编写一个“手术数据库”,并且已经对登录页面进行了编程,该页面可以从数据库成功运行,并且我已经对目录进行了编码。目录组合框显示数据库中的患者并且该功能正确,但我不知道如何获取它,以便当您按搜索时,它会打开我的 main.vb 页面并使用访问数据库中的正确数据填充文本框,根据选择的患者。

非常感谢任何可以提供帮助的人。

我正在使用 microsoft access 来使用 VB,但我以前从未真正使用过。我已经尝试过以下教程,但一切似乎都略有不同,并且没有得到预期的结果。

Private Sub BtnPatient_Click(sender As Object, e As EventArgs) Handles BtnPatient.Click
    Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM PatientDB WHERE [Name] = " & TxtPatient.Text & "'", myConnection)
    Dim dr As OleDbDataReader = cmd.ExecuteReader


    Me.Visible = False
    Me.Hide()
    Main.ShowDialog()
    myConnection.Close()
End Sub

输出应该是来自 Access 数据库的患者详细信息。

database vba vb.net ms-access
1个回答
0
投票

你是一名学生,所以我将尽可能保持简单,而不是试图侮辱你的智力。如果我这样做,请提前原谅我。

有很多更好的方法可以完成我将要解释的事情,但这会起作用。

数据库代码应该位于主窗体的 Open 事件中。您需要将 TxtPatient.Text 的值传递到主窗体的 Tag 属性中。具体方法如下:

在您的搜索页面上:

Private Sub BtnPatient_Click(sender As Object, e As EventArgs) Handles BtnPatient.Click
    Dim fMain As New main
    fMain.Tag = Txtpatient.Text
    fMain.Show()
    Me.Hide()
End Sub

现在,在主窗体的打开事件中应该类似于以下内容:

Private Sub main_Load(sender As Object, e As EventArgs) Handles MyBase.Load    
    Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM PatientDB WHERE [Name] = '" & Me.Tag & "'", myConnection)
        Dim dr As OleDbDataReader = cmd.ExecuteReader
        If dr.HasRows Then
            Do While dr.Read
                Me.txtName = dr("PatientName")
                Me.txtDOB = dr("DateOfBirth")
                'etc...
            Loop
        Else
            MessageBox.Show("There are no records.")
        End If
    End Sub

特别注意“Select”语句。你应该看到我用 Me.Tag 替换 txtPatient.Text 的地方

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.