Как отмечают другие, ODBC видит столбец типа vечар, nvchar, char более 255 символов в качестве столбца типа «памятки», и поэтому вы не можете получить максимальное количество символов.
Предполагая, что у вас естьпроходной запрос, определенный в Access.(Я всегда делаю один, и снова и снова использую его для всего кода), тогда вы можете получить длину любого поля с этим кодом:
Public Function GetFLength(strTable As String, strField As String) As Long
Dim strSQL As String
strSQL = "select col_LENGTH('" & strTable & "','" & strField & "')"
With CurrentDb.QueryDefs("qryPassR")
.SQL = strSQL
GetFLength = .OpenRecordset()(0)
End With
End Function
Для varchar (max), вышевернет -1, но для всего остального вернет длину столбца.