Как я могу установить значение текстового поля в записи для адреса гиперссылки? - PullRequest
1 голос
/ 07 октября 2019

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

Вот код, который я до сих пор придумал:

sqlqry = "Select A1, B1, C1 From Table"

Me.Form1.Form.txtC1.SetFocus
i = 0
rs.Open sqlqry, cn, adOpenDynamic, adLockReadOnly
With rs
Do
    Do Until rs.EOF
    i = i + 1
        If rs.EOF Then
            Exit Do
        End If
    Me.Form1.Form.txtC1.HyperlinkAddress = Me.Form1.Form.txtC1.Text
    rs.MoveNext
    Loop
Loop Until rs.EOF
End With

Я получаю сообщение об ошибке:

Объект не поддерживает это свойство или метод.

На линии

Me.Form1.Form.txtC1.HyperlinkAddress = Me.Form1.Form.txtC1.Text

Возможно, другой подход был бы лучше?

РЕДАКТИРОВАТЬ:

После еще немного возиться с этим,Я смог установить гиперссылку для всех записей, используя метку и скрытое текстовое поле. Однако вместо того, чтобы изменять цель гиперссылки на значение скрытого текстового поля для каждой итерации цикла, она устанавливает для каждой ссылки значение первого текстового поля.

Я пытаюсь реализовать для каждого цикла изменение ссылки для каждой записи с помощью объекта поля ADO, но я не уверен, как указать ему, на какое поле смотреть. Вот новый код

i = 0
rs.Open sqlqry, cn, adOpenDynamic, adLockReadOnly
With rs
Do
    Do Until rs.EOF
    i = i + 1
    hLink = Me.Form1.Form.txtC1.Value
        If rs.EOF Then
            Exit Do
        End If
   Me.Form1.Form.lbl.HyperlinkAddress = hLink
    rs.MoveNext
    Loop
Loop Until rs.EOF
End With

1 Ответ

1 голос
/ 07 октября 2019

Гиперссылка Access состоит из 3 частей, разделенных символом # (http://allenbrowne.com/casu-09.html). Если текстовое поле содержит строку, соответствующую одной из структур второй части, например, путь к файлу или строка URL, текстовое поле может бытьинтерактивная гиперссылка со свойством IsHyperlink, установленным на Да, и выражением в ControlSource:

="Click to Open File#" & Me!fieldname & "#"

Или используйте VBA для выполнения метода FollowHyperlink.

...