Den,
I'm in a similar situation, only using Access (or the Jet back end) where I have to, but preferring a constellation of other engines. Still, it is useful to be able to manipulate Jet, given the number of products that use it (EA included).
Yes, you can use the GUID keyword in Jet DDL, and it works just fine. However, other posters are correct that Jet does not report this through the automation interface. More correctly, Jet does not report it directly. The default data type in Jet reporting is Text. Also, if fields do not report a size attribute, they default to 255. You can test this yourself via DDL. You will not be able to specify a field size for anything other than Text; if you leave it out for a Text field you you will end up with Text(255).
However, Jet does report the GUID type indirectly. If you query the Properties collection of a Field object, and look at the Type entry, Jet will return an enumeration item. Using ADO you will get a value from DataTypeEnum, with GUID fields returning dbGUID = 15. With ADO or ADOX the value is from the OLEDB version of DataTypeEnum, which is somewhat different and more comprehensive; in this case dbGUID = 72, but it is still the same animal. I have not tested this for ODBC, but my suspicion is that it is one of the above.
Next question is: Who approaches Sparx with this, and through which channel?
Bruce: are you listening? You've navigated the Sparx process more than I. Surely you have some insights?
David