Как заставить Dlookup возвращать и отображать гиперссылку в Access 2010/2013

#ms-access #hyperlink #vba

#ms-access #гиперссылка #vba

Вопрос:

Как мне заставить Dlookup возвращать гиперссылку из поля таблицы, заданного как гиперссылка, и отображать гиперссылку в текстовом поле? Текстовое поле возвращает только имя, которое я указал для строки в качестве гиперссылки, а не фактическую гиперссылку, которая находится в поле таблицы. Когда я нажимаю на то, что отображается в текстовом поле, он не может найти путь, поскольку гиперссылка — это только имя строки. Должен ли я форматировать Dlookup по-другому? Я не могу найти никаких ответов нигде, кроме функции Vlookup Excel. Я не нашел в Интернете ни одного примера того, как это сделать. Текстовое поле также отформатировано для гиперссылки.

 Private Sub Combo4_AfterUpdate()
Dim CertNum As String
Dim VendorYN As String
CertNum = Me.Combo4.Value
If IsNull(VendorYN = DLookup("[VendorCert]", "[Calibration Data]", "[Certificate Number] = " amp; CertNum amp; "")) Then
        Me.Check10 = False
    Else
        Me.Check10 = True
        Me.Text12 = "Vendor Certificate Of Calibration#VendorYN#"
    End If
End Sub
 

Комментарии:

1. Посмотрите, поможет ли эта ссылка .

2. @OverMind — Спасибо за ссылку, но проблема больше связана с Dlookup. Когда я проверяю, что возвращает Dlookup, отображая VendorYN msgbox, он возвращает пустой или нулевой. Итак, я, должно быть, что-то упускаю в том, как я формирую свой Dlookup. Я пытался поместить # в places в Dlookup, но это тоже не нравится.

3. Попробуйте "[Certificate Number] = " amp; CertNum

4. @OverMind — он по-прежнему настраивается пустым после того, как я его изменил.

5. Какое значение CertNum имеет значение при отладке после его присвоения Me.Combo4.Value ?

Ответ №1:

Вот что я использовал:

 Dim CertNum As String
Dim VendorYN As String

CertNum = 132 'I hardcoded 132 to avoid building a combobox control

If IsNull(VendorYN = DLookup("[VendorCert]", "[Calibration Data]", "[Certificatio nNumber] = " amp; CertNum amp; "") = False Then

Me.TestText = VendorYN

Else

MsgBox "No Value"

End If
 

Я также отформатировал свойства Me.TestText , на Data вкладке, Text Format , Rich Text .

Комментарии:

1. Ядро будет постоянно меняться, оно основано на другом выборе со списком. Повлияет ли это на то, как это работает?

2. Это нормально. Ваш код не должен меняться CertNum , если он дает вам правильные значения из Combo4

3. Хорошо, это сработало и вернуло правильную гиперссылку. Затем я настроил Me.Text12 отображение VendorYN, и он сделал то же самое, что и раньше.

4. Вы сделали все, что я сказал в своем ответе, относительно форматирования текстового поля?

5. Я узнал, что работает. VendorYN = Nz(DLookup("[VendorCert]", "[Calibration Data]", "[Certificate Number] = " amp; CertNum amp; "")) а затем я продолжаю свое if then заявление. Таким образом, я не получаю сообщение об ошибке Null. Кроме того, если я введу FollowHyperlink Me![TestText], , True событие OnClick для текстового поля, оно откроет файл.