C'est un cas où vous ne pouvez pas utiliser mais DDL devez utiliser DAO. Ce que vous recherchez est la propriété .Attributes du type de champ DAO. Dans VBA, ce code fait le tour (vous devrez savoir comment faire avec DAO en 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
Si vous vérifiez le type de ce champ dans l'accès aux données:
CurrentDB.TableDefs("MyTable").Fields("Hyperlink").Type
il renvoie 12, ce qui est égal à la constante globale VBA dbMemo (c'est ainsi que j'ai compris comment faire, c'est-à-dire créé un champ Hyperlink dans l'Access Access, puis vérifié son type de données). La valeur de dbHyperlinkField est 32768, mais ne peut pas être affectée directement en tant que type de données. Il s'agit plutôt d'un sous-attribut d'un champ mémo.
Il s'agit d'un cas où Access a étendu Jet en utilisant un attribut personnalisé pour qu'il fonctionne avec les données différemment du nombre limité de types de données Jet. Il est également clair que le type de champ Lien hypertexte n'est pertinent que si vous utilisez les données d'Access lui-même. Si vous utilisez une autre application pour travailler avec les données, vous ne gagnez rien du tout en utilisant un champ de données de lien hypertexte.
Aussi, je suis avec ceux qui recommandent pas en utilisant un champ de type Hyperlien parce que je l'ai essayé et c'est juste une douleur dans le cul. De plus, étant donné que c'est vraiment un champ mémo, il est sujet à tous les problèmes qui viennent avec les champs mémo. Autrement dit, les données ne sont pas réellement stockées avec la table de données - tout ce qui est stocké dans l'enregistrement principal est un pointeur vers la page de données où les données réelles sont stockées, et ces pointeurs sont l'une des parties plus fragiles de Jet. Les mémos valent ce risque, car lorsque vous avez besoin de stocker plus de 255 caractères, vous devez le faire. Je ne vois pas de fonctionnalité significative ajoutée par le type de champ Hyperlink spécifique à l'accès qui justifie le travail avec le code ou le risque lié au fait qu'il soit implémenté dans les coulisses en tant que champ Mémo.
Eh bien, il y a un concept d'un lien hypertexte dans MS Access. C'est l'un des types de données disponibles, j'ai donc pensé qu'il devait y avoir un moyen de le créer dans MS Access SQL. – raven
Un lien hypertexte dans MS Access n'est pas un type de données mais plutôt un objet que vous pouvez placer sur vos formulaires d'accès. – brendan
Ok, je suis convaincu que ça ne peut pas être fait. – raven