2

名前に基づいて動物を検索するプログラムを作成しようとしています。現在、その部分は機能していますが、オプションの検索を追加して、ユーザーが体重などの特定のデータを検索できるようにしたいと考えています。コンボ ボックスには、体重が一致するすべての動物の結果が表示され、ユーザーは次のことができます。次に、彼が望むものを選択すると、正しいデータが表示された、私が設計したフォームが開きます。残念ながら、私はプログラミングについて非常に基本的な理解を持っているので、どんな助けでも大歓迎です。

これが私の現在のコードです。メインの検索機能は機能しますが、オプションの検索機能は機能しません。私はそれをプログラムした方法が原因であると言われました.SQLの各行がそれ自体を置き換えるため、最後の答えで終わるだけです.

Private Sub btnsear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsear.Click
    If (txtname.Text = "") Then
        MsgBox("Invalid Search")
    Else
        Try
            Dim newsql As String
            newsql = "select * from Animals where AnimalName like " & "'%" & txtname.Text & "%'"
            'MsgBox("select * from Animals where AnimalName like " & "'" & txtname.Text & "'")
            'msgbox(newsql)
            Dim con As New OleDb.OleDbConnection
            Dim da As New OleDb.OleDbDataAdapter

            ' dim ds as NewDataTable
            Dim dt As New DataTable("Animals")
            ' uses the 2010 compatible connection string
            con.ConnectionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = h:\Animals.accdb"
            con.Open()

            da = New OleDb.OleDbDataAdapter(newsql, con)
            da.Fill(dt)

            Form2.Show()

            'show name in unbound text box
            Form2.nametxt.Text = dt.Rows(0).Item(1)
            Form2.latintxt.Text = dt.Rows(0).Item(2)
            Form2.locationtxt.Text = dt.Rows(0).Item(3)
            Form2.heighttxt.Text = dt.Rows(0).Item(4)
            Form2.weighttxt.Text = dt.Rows(0).Item(5)
            Form2.diettxt.Text = dt.Rows(0).Item(6)
            Form2.statustxt.Text = dt.Rows(0).Item(7)
            Form2.lifetxt.Text = dt.Rows(0).Item(8)
            Form2.breedtxt.Text = dt.Rows(0).Item(9)
            Form2.lengthtxt.Text = dt.Rows(0).Item(10)
            Form2.txtimage.Text = dt.Rows(0).Item(11)

        Catch
            MsgBox("Item Not Found")
            'con.close()
        End Try
    End If

    If (txtopt.Text = "'") Then
        Try
            Dim sql1 As String
            Dim sql2 As String
            Dim sql3 As String
            Dim sql4 As String
            Dim sql5 As String
            Dim sql6 As String
            Dim sql7 As String
            Dim sql8 As String
            Dim sql9 As String
            Dim sql10 As String

            sql1 = "select * from Animals where AnimalName like " & "'%" & txtopt.Text & "%'"
            sql2 = "select * from Animals where LatinName like " & "'%" & txtopt.Text & "%'"
            sql3 = "select * from Animals where Location like " & "'%" & txtopt.Text & "%'"
            sql4 = "select * from Animals where AverageHeight like " & "'%" & txtopt.Text & "%'"
            sql5 = "select * from Animals where AverageWeight like " & "'%" & txtopt.Text & "%'"
            sql6 = "select * from Animals where DietaryNeeds like " & "'%" & txtopt.Text & "%'"
            sql7 = "select * from Animals where ConservationStatus like " & "'%" & txtopt.Text & "%'"
            sql8 = "select * from Animals where AverageLifeSpan like " & "'%" & txtopt.Text & "%'"
            sql9 = "select * from Animals where BreedingSeason like " & "'%" & txtopt.Text & "%'"
            sql10 = "select * from Animals where AverageLength like " & "'%" & txtopt.Text & "%'"

        Catch
        End Try
    End If

End Sub
4

1 に答える 1