Change below code in search() function. Reason is SQL query is not properly written -
id_number column is expect a value which was not passed. So you are getting error.
Dim strSQL As String = "select Last_Name, First_Name, Middle_Name, Course, id_number from tbl_students where id_number='" & frmSearchRecord.txtSearch.Text & "'"
One more thing I want to suggest you to use Parameterised query in ADO.NET in order to avoid SQL Injection. If you want to implement the same, see following code :
Dim strSQL As String = "select Last_Name, First_Name, Middle_Name, Course, id_number from tbl_students where id_number=@ID_Number"
Dim conn As New OleDbConnection("ConnectionString")
Dim cmd As New OleDbCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = strSQL
cmd.Parameters.AddWithValue("@ID_Number", frmSearchRecord.txtSearch.Text)
Dim y_da As New OleDbDataAdapter(cmd)
Dim y_dt As New DataTable()
y_da.Fill(y_dt)