Определение типа поля АДО и ДАО

AlexDE
Дата: 04.11.2009 18:25:11
Если определяю тип поля через АДО, то работает.
Function FieldTypeADO(ByVal strTable As String, ByVal strField As String) As Integer
Dim ctlg As New ADOX.Catalog, strType As Integer
On Error GoTo ERRHANDLER
    ctlg.ActiveConnection = CurrentProject.Connection
    strType = ctlg(strTable).Columns(strField).Type
    FieldTypeADO = strType
    Exit Function
ERRHANDLER:
        FieldTypeADO = Err.Number
        Set ctlg = Nothing
End Function

А такая функция в ДАО выдает ошибку 3265
Function FieldTypeDAO(ByVal strTable As String, ByVal strField As String) As Integer
Dim strType As Variant
On Error GoTo ERRHANDLER
    strType = CurrentDb.QueryDefs(strTable).Fields(strField).Type
    FieldTypeDAO = strType
    Exit Function
ERRHANDLER:
    FieldTypeDAO = Err.Number
    
End Function
Подскажите что я делаю не правильно.
nord-woolf
Дата: 04.11.2009 18:41:22
Может в том, что имя таблицы (судя по имени переменной (strTable)) ищете в коллекции QueryDefs?
AlexDE
Дата: 04.11.2009 18:45:53
nord-woolf,

Спасибо, ступил. Конечно TableDefs. Все работает. И быстрее чем АДО это и хотел проверить.
Анатолий ( Киев )
Дата: 04.11.2009 19:15:07
Только почему strType, если Variant? И почему Variant, если там Long?
Владимир Саныч
Дата: 04.11.2009 19:19:53
Анатолий ( Киев )
И почему Variant, если там Long?

И почему функция описана As Integer, если там Long?