我正在尝试从 VB 运行 Access 数据库查询。我想要运行的一般查询是
SELECT * FROM Patient WHERE Patient.PatientID = ?
or SELECT * FROM Patient WHERE Patient.PatientLname = ?
我尝试使用输入框来捕获用户输入并将该变量传递给查询,但失败了。
然后我读到了有关编写一个函数并使用它的信息,但是,我不断收到一个错误,提示“函数未定义”,但是当单步执行代码时,它似乎可以工作。
这是我的功能:
Module Module1
Public Function LookUpNow(ByVal userInput As String) As String
LookUpNow = userInput
Return userInput
Exit Function
End Function
End Module
这也是当前的查询
SELECT * FROM Patient WHERE (((Patient.PatientLName)=LookUpNow()))
我正在使用 VisualStudio。我是否必须使用 OleDBConnection 手动编写连接字符串,还是 VisualStudio 自动执行此操作?
Private Sub FillBy3ToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FillBy3ToolStripButton.Click
Dim Input As String
Input = InputBox("What patientID do you want to lookup?", "PatientID entry Form", "Enter PatientID here")
Call LookUpNow(Input)
Try
Me.PatientTableAdapter.FillBy3(Me.PatientRecordsDataSet.Patient)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
我很困惑和沮丧。感谢您的帮助
最佳答案
您无法远程(例如 OLE DB、ODBC 等)运行包含内部定义函数 (vba) 的 Access 查询。您得到的错误是完全合法的。
您可以使用 OLE DB Provider 来执行查询。我确信您知道如何执行此操作,但为了以防万一,这里有一些有用的信息: http://msdn.microsoft.com/en-us/library/6d9ew87b(v=vs.90).aspx
这里有一些例子:http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter(v=vs.90).aspx
关于vb.net - 从 VB 在 Access 上运行查询,传递变量或函数作为查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10057699/