Имею Access 2002.
Установлена ссылка на Microsoft DAO 3.6 Object Library.
Есть процедура:
Sub test()
Dim db As Database
Dim tdf As TableDef
Dim fld As Field
Set db = CurrentDb
Set tdf = db.CreateTableDef("TEST")
Set fld = tdf.CreateField("ID", dbLong)
fld.Attributes = fld.Attributes + dbAutoIncrField
tdf.Fields.Append fld
db.TableDefs.Append tdf
db.TableDefs.Refresh
End Sub
Код затыкается на стоке
Set fld = tdf.CreateField("ID", dbLong)
со словами Type Mismatch.
При объявлении
Dim fld As Variant
все работает, а ее тип определяется как Variant/Object/Field.
Пример из хелпа
CreateField Method Example обламывается по той же причине

.
Просьба помочь разобраться…
С уважением,
Андрей
A>Код затыкается на стоке
A>A>Set fld = tdf.CreateField("ID", dbLong)
A>
A>со словами Type Mismatch.
Сам спросил, сам ответил
Перемену необходимо описывать как
Dim fld As DAO.Field
В противном случае она воспринимается как ADODB.Field