我有一个MS Access“生成表”查询,用于连接SharePoint库URL和上载的每个文档的路径。但是,结果将输出为文本字段。目前,我必须手动将字段属性从Text更改为Hyperlink,以便将输出显示为文档名称,并带有指向文档的超链接。有没有办法使用查询更改字段属性?
答案 0 :(得分:2)
正如HansUp所提到的,单独使用SQL无法进行转换,但如果在执行make-table查询后立即运行VBA过程,它可以为您“转换”该字段。
(它实际上必须创建一个新字段,复制#
字符中包含的链接数据,删除旧字段,然后重命名新字段。)
Option Compare Database
Option Explicit
Sub ConvertFieldToHyperlink()
Dim cdb As DAO.Database, tbd As DAO.TableDef, fld As DAO.Field
Set cdb = CurrentDb
Set tbd = cdb.TableDefs("yourTable")
Set fld = New DAO.Field
fld.Name = "zzzNew"
fld.Type = vbVariant
fld.Attributes = dbHyperlinkField
tbd.Fields.Append fld
Set fld = Nothing
cdb.Execute "UPDATE [yourTable] SET [zzzNew]='#' & [linkField] & '#'", dbFailOnError
tbd.Fields.Delete "linkField"
tbd.Fields("zzzNew").Name = "linkField"
Set tbd = Nothing
Set cdb = Nothing
End Sub
答案 1 :(得分:1)
The Hyperlink type field cannot be created with DDL.无论您是要创建字段还是更改现有字段的类型,都会应用Access SQL限制。因此,您的生成表查询可以创建文本字段,但不是超链接字段。
另外,您可以运行VBA代码来更改表的DAO TableDef
中的字段类型。但是,我认为创建目标表结构一次然后将数据加载到该表应该更容易。换句话说,使用“追加查询”而不是“make table”查询。如果以后需要替换该表中的数据,请不要删除该表并创建新版本。只需DELETE
现有行,然后附加新数据。
答案 2 :(得分:0)
您可以使用concat运算符(&
)手动创建href
元素:
SELELCT '<a href="' & link & '">' & name & '</a>'
FROM documents