You add the command parameter to the original command, not the one you fill your DataSet from via the adapter:
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = intId
cmd.CommandText = "SELECT * FROM tblAttendanceTimes WHERE intApprovedOvertime = 0 AND fkEmployee = @EmployeeID"
Dim da As New SqlDataAdapter(cmd) With
{.SelectCommand = New SqlCommand(cmd.CommandText, con)}
da.Fill(ds, "Table")
Try this:
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = intId
cmd.CommandText = "SELECT * FROM tblAttendanceTimes WHERE intApprovedOvertime = 0 AND fkEmployee = @EmployeeID"
Dim da As New SqlDataAdapter(cmd)
da.Fill(ds, "Table")