>>>>>- Convert the SCX to text (SC2) with FoxBin2Prg and back to SCX: Sometimes the VCX/SCX table have some corruption in metadata that can cause this problems (normally, duplicated records). Others have solved this kind of problems (look at Msg.ID 1634833)
>>>>
>>>>I haven't yet tried your program - can you please post a link and tell if it would preserve a very complex form based on a class with ActiveX? Of course, I do have backups (in TFS).
>>>>
>>>
>>>Yeah, here it is:
>>>
>>>
https://vfpx.codeplex.com/releases/view/116407>>>
>>>For a quick setup, please read this help page:
>>>
https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg>>>
>>>It is on Thor tool too, in case you use it, and in it there is an option that create some "SendTo" shortcuts for you.
>>
>>Ok, I'll do it. I also checked the code, there are no type checks, only vartype, although there is one method I don't like much:
>>
>>
>>with thisform
>> lcAlias = .parse(tcFieldList, "ALIAS")
>> lcAlias = iif(empty(m.lcAlias), alias(), m.lcAlias)
>> if !empty(m.lcAlias)
>> lnFields = afields(laFlds)
>> for lnI = 1 to lnFields
>> lcField = laFlds[lnI, 1]
>> lcType = laFlds[lnI, 2]
>> lcMemvar = "m." + m.lcField
>> lcPassedVal = .parse(tcFieldList, lcField)
>> if vartype(m.lcMemvar) = "U"
>> public &lcMemvar
>> endif
>> do case
>> case lcType $ "NFIBY"
>> lxVal = val(nvl(lcPassedVal,"0"))
>> case lcType = "D"
>> lxVal = ctod(nvl(lcPassedVal,"{^1900-01-01}"))
>> case lcType = "T"
>> lxVal = ctot(nvl(lcPassedVal,"{^1900-01-01}"))
>> case lcType = "L"
>> lxVal = upper(nvl(lcPassedVal,""))=".T."
>> otherwise
>> lxVal = nvl(lcPassedVal,"")
>> endcase
>> STORE lxVal TO (m.lcMemvar )
>> next lnI
>> endif
>>endwith
But if it's not reproducible it's unlikely to be the problem ?
Two of the last reports pointed out that the crash occurred in the GetSortedSchedule method of the form after one of the selects been done.
Let me review that procedure again, it is quite long.
If it's not broken, fix it until it is.
My Blog