2015-03-02 2 views
1

Я только что создал базу данных в Access, которая будет иметь гиперссылки на файлы PDF в подкаталоге.Расположение гиперссылок из корневого каталога

Я мог бы просто скопировать всю папку каталога, но если я когда-либо изменю местоположение файлов (или если мы вынуждены перемещать их где-то в другом месте), мне пришлось бы переименовать их все.

Похоже, что лучшим решением является предоставление доступа для доступа в каталог «root» и поиск этого имени конкретной папки, которое, вероятно, никогда не изменится.

Возможно ли это?

Для уточнения:

Database location: X:/Somewhere/Over/Here.ADB 

PDF file location: X:/Somewhere/Over/There/123abc.PDF 

Было бы гораздо лучше сказать доступ к поиску в папке «Там», которая находится в «корневой» каталог .adb, чтобы открыть 123abc.PDF

альтернативы ввести значение PDF местоположения, как это:

X:/Somewhere/Over/There/123abc.PDF 

X:/Somewhere/Over/There/456def.PDF... etc. 

Но если местоположение изменений БД в, для е xample X:/Somewhere/Else/, тогда мне нужно переименовать все местоположения.

+0

Где находится база данных Access по отношению к каталогу «root»? – Newd

+0

Доступ db is X: /somewherewhere/here.adb Я хочу, чтобы файлы PDF были X: /somewhere/over/there/abc.pdf. Но я думаю, что «корень» должен быть местом расположения db, то есть X:/где-то/над /. Таким образом, я могу указать доступ к папке «there» для «abc.pdf» – user3564760

+1

У вас есть разделенная база данных или одна база данных файлов? Если он разделен, я предполагаю, что ваша папка «root» находится там, где находится ваш бэкэнд-файл? – Newd

ответ

2

Если я правильно понять, что вы ищете, вы можете использовать что-то вроде этого:

Private Sub Form_Load() 

    Dim strDBPath as string 
    strDBPath = CurrentProject.Path & "\" 

    Me.Textbox1.Hyperlink = strDBPath & "PDFs\123abd.pdf" 
    Me.Textbox2.Hyperlink = strDBPath & "PDFs\456efg.pdf" 

End Sub 

Хотя это базируется из файла внешнего интерфейса, находящегося в папке «корень».

После того, как вы заметили свой комментарий, я мгновенно обновляю другой вариант использования бэкэнд-файла.

Private Sub Form_Load() 

    Dim strDBPath as string 
    strDBPath = Left(Mid(Currentdb.TableDefs("TableName").Connect, 11),Len(Mid(Currentdb.TableDefs("TableName").Connect, 11)) - 10) 

    Me.Textbox1.Hyperlink = strDBPath & "PDFs\123abd.pdf" 
    Me.Textbox2.Hyperlink = strDBPath & "PDFs\456efg.pdf" 

End Sub 

10-длина имени вашего бэкэндом настроить соответствующим образом, я не могу думать о какой-либо способ, чтобы получить, что более динамично. Я чувствую, что что-то немного смутно с этим, и может быть более простой способ, но это основная работа для того, как вы можете делать то, что ищете.

+0

Спасибо, это имеет смысл. Мой текущий план - создать столбец с адресом в PDF. Я относительно незнакома с использованием «кода» в доступе, было бы проще взять «корневое местоположение» из столбца A, «Имя PDF» из столбца B, а затем вставить значения вместе в columnC? Кажется, это то, что это делает в некоторой степени, но опять же я не знаком с использованием этого типа кода при доступе – user3564760

+0

Нет времени, как настоящий, чтобы начать свой путь в программировании :-) – Newd

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