Это тот случай, когда вы не можете использовать DDL, но должны использовать DAO. То, что вы ищете, это свойство .Attributes типа поля DAO. В VBA этот код делает свое дело (вам придется выяснить, как это сделать с помощью DAO в C #):
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Set tdf = CurrentDB.TableDefs("MyTable")
Set fld = tdf.CreateField("Hyperlink", dbMemo) ' dbMemo = 12
fld.Attributes = dbHyperlinkField ' 32768
tdf.Fields.Append fld
Set fld = Nothing
Set tdf = Nothing
Если вы проверите тип данных этого поля в Access:
CurrentDB.TableDefs("MyTable").Fields("Hyperlink").Type
возвращает 12, что равно глобальной константе VBA dbMemo (именно так я понял, как это сделать, то есть создал поле гиперссылки в пользовательском интерфейсе Access, а затем проверил его тип данных). Значение для dbHyperlinkField равно 32768, но его нельзя назначить непосредственно в качестве типа данных - вместо этого оно является податрибутом мемо-поля.
В этом случае Access расширяет Jet, используя настраиваемый атрибут для работы с данными иначе, чем ограниченное количество типов данных Jet. Также ясно, что тип поля «Гиперссылка» имеет значение, только если вы используете данные из самого Access. Если вы используете какое-то другое приложение для работы с данными, вы ничего не получите от использования поля данных гиперссылки.
Кроме того, я с теми, кто рекомендует , а не , используя поле типа Гиперссылка, потому что я пробовал это, и это просто боль в заднице. Кроме того, учитывая, что это действительно мемо-поле, оно подвержено всем проблемам, которые возникают с мемо-полями. То есть данные на самом деле не хранятся вместе с таблицей данных - все, что хранится в основной записи, - это указатель на страницу данных, на которой хранятся реальные данные, и эти указатели являются одной из составных частей Jet. Записки стоят такого риска, потому что когда вам нужно хранить более 255 символов, вам нужно это сделать. Я не вижу, чтобы существовал какой-либо существенный функционал, добавленный типом поля «Гиперссылка», специфичный для Access, что стоит потрудиться при работе с ним в коде или риск, который возникает из-за того, что он реализован за кулисами в качестве мемо-поля.