2013-11-22 65 views
0

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

+0

您可以发布的SQL你使表查询?如果我们可以看到SQL,那么指出正确的方法将会更容易。 –

回答

0

可以使用毗连运算符(&)手动创建一个href元素:

SELELCT '<a href="' & link & '">' & name & '</a>' 
FROM documents 
+0

我很抱歉,但我的访问知识仅限于简单的qieries,而您的ansewer让我感到非常困惑。它看起来像是另一种方法来对URL和文档的名称进行协调,而我所做的协调工作,但问题是我得到的结果是文本,而我需要它作为超链接。当我手动更改它时,文档的链接显示为文档的名称,并且是超链接。你能否分享更多关于查询语句的内容以及如何开始的信息? – user3020843

1

The Hyperlink type field cannot be created with DDL.访问SQL限制适用不管你是否要创建一个字段或更改现有字段的类型。所以你的表查询可以创建一个文本字段,但是不是的超链接字段。

另外,您可以运行VBA代码来更改表的DAO TableDef中的字段类型。不过,我认为一次创建目标表结构应该更容易,然后将数据加载到该表中。换句话说,使用“追加查询”而不是“make table”查询。如果以后需要替换该表中的数据,请不要删除表并创建新版本。只需DELETE现有的行,然后追加新的数据。

2

正如HansUp所言,无法单独在SQL中进行转换,但如果您在执行生成表查询后立即运行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 
+0

你好,谢谢你Gord给我发送代码!对于迟到的反应,我很抱歉,但是我需要一些时间来了解我要做的事情。我已经在模块中输入了代码,我已经更新了信息以反映我的表格信息。然后当我运行它时,我得到错误:运行时错误“3259”:无效的字段数据类型。错误来自fld.Type = adVariant。你能帮我解决这个问题吗? – user3020843

+0

@ user3020843嗯,也许它应该是'fld.Type = vbVariant'。改为尝试。另外,请检查模块的顶部,以确保包含我的答案中所示的Option Explicit语句。 (这一点很重要。) –