抱歉,很难用语言表达。 我正在为一个学校项目编写一个“手术数据库”,并且已经对登录页面进行了编程,该页面可以从数据库成功运行,并且我已经对目录进行了编码。目录组合框显示数据库中的患者并且该功能正确,但我不知道如何获取它,以便当您按搜索时,它会打开我的 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 数据库的患者详细信息。
你是一名学生,所以我将尽可能保持简单,而不是试图侮辱你的智力。如果我这样做,请提前原谅我。
有很多更好的方法可以完成我将要解释的事情,但这会起作用。
数据库代码应该位于主窗体的 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 的地方
希望这有帮助。