2013-11-22 3 views
0

У меня есть запрос MS Access «Сделать таблицу», который объединяет URL-адрес библиотеки SharePoint и путь к каждому загруженному документу. Результат, однако, выводится как текстовое поле. В настоящее время мне нужно вручную изменить свойство поля из текста в гиперссылку, чтобы он отображался как имя документа с гиперссылкой на документ. Есть ли способ изменить свойство поля с помощью запроса?Изменить свойства поля в таблице

+0

Вы можете разместить SQL из вашего Сделать запрос таблицы? Будет легче указать правильный способ сделать это, если мы сможем увидеть SQL. –

ответ

0

Вы можете использовать оператор Concat (&) вручную создать href элемент:

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

Прошу прощения, но мои знания о доступе ограничены простыми qieries, и ваш ansewer очень меня смутил. Это похоже на другой способ конкатенации URL-адреса и имени документа, в то время как выполняемое мной совместное выполнение, но проблема в том, что я получаю результат как текст, в то время как он мне нужен как гиперссылка. Когда я меняю его вручную, ссылка на документы отображается как имя документа, и это гиперссылка. Не могли бы вы поделиться более подробной информацией о том, что говорит о запросе и как начать? – user3020843

1

The Hyperlink type field cannot be created with DDL. Это Access SQL ограничение применяется независимо от того, хотите ли вы создать поле или изменить тип существующего поля , Таким образом, ваш запрос таблицы может создать текстовое поле, но не поле гиперссылки.

Отдельно вы можете запустить код VBA, чтобы изменить тип поля в DAO таблицы TableDef. Однако, я думаю, что проще создать структуру таблицы назначения один раз, а затем загрузить ваши данные в эту таблицу. Другими словами, используйте «append query» вместо «make table». Если впоследствии вам нужно будет заменить данные в этой таблице, не отбрасывайте таблицу и не создавайте новую версию. Только DELETE существующие строки, а затем добавьте новые данные.

2

Как упоминает HansUp, не существует способа сделать преобразование только в SQL, но если вы выполните процедуру VBA сразу после выполнения запроса таблицы make, он может «преобразовать» это поле для вас.

(Это на самом деле должен создать новое поле, скопируйте данные ссылок, вложенных в # символов, удалить старое поле, а затем переименовать новую.)

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

Привет, спасибо вам, Горд за отправку кода! Прошу прощения за поздний ответ, однако мне нужно время, чтобы понять, что мне с этим делать. Я ввел код в модуле, я обновил информацию, чтобы отразить информацию о моей таблице. И затем, когда я запустил его, я получаю сообщение об ошибке: Ошибка времени выполнения «3259»: недопустимый тип данных поля. Ошибка возникает для fld.Type = adVariant. Не могли бы вы мне помочь? – user3020843

+0

@ user3020843 Хм, возможно, это должно быть 'fld.Type = vbVariant'. Попробуйте это вместо этого. Кроме того, проверьте верхнюю часть вашего модуля, чтобы убедиться, что включает в себя оператор «Option Explicit», как показано в моем ответе. (Это важно.) –

Смежные вопросы