2

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

私はとても混乱してイライラしています。ご協力いただきありがとうございます

4

1 に答える 1

2

内部で定義された関数 (vba) を含む Access クエリをリモート (OLE DB、ODBC など) で実行することはできません。あなたが得たエラーは完全に正当です。

OLE DB プロバイダーを使用してクエリを実行できます。これを行う方法を知っていると確信していますが、念のため、ここに役立つ情報があります: 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

于 2012-05-05T07:33:20.093 に答える