In the code below, when the Schedule table is first used, the value of s_Pat_Num is "New..." Unfortunately, that's also still the value of s_Pat_Num after the SEEK, though the value of that field is "0000101" on the record the SEEK found. If the record pointer is on the correct record, why would the value of s_Pat_Num not change?
USE ( m_data_dir + 'Schedule') IN SELECT('Schedule')
IF SEEK(m.SchedID, 'schedule', 'SchedID')
m.PatientNumber = Schedule.s_Pat_Num
IF m.PatientNumber = 'New...'
MESSAGEBOX('New Patients not working yet')
ENDIF