在表格中更改字段属性

时间:2013-11-22 08:17:46

标签: ms-access ms-access-2010

我有一个MS Access“生成表”查询,用于连接SharePoint库URL和上载的每个文档的路径。但是,结果将输出为文本字段。目前,我必须手动将字段属性从Text更改为Hyperlink,以便将输出显示为文档名称,并带有指向文档的超链接。有没有办法使用查询更改字段属性?

3 个答案:

答案 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
相关问题