VBA Как отправить путь к файлу изображения в базу данных в виде гиперссылки - PullRequest
0 голосов
/ 25 октября 2018

Требуется помощь в правильном синтаксисе для преобразования строки пути к файлу изображения в гиперссылку при нажатии кнопки команды отправки.

Я успешно могу отправить строку в правую строку и столбец, но не могу понять,где разместить гиперссылки.Ниже приведен код для отправки строк в базу данных.

В любом случае, чтобы добавить метод hyperlinks.add в строки для имен файлов 1 и 2?

filepath1 = текстовое поле, в которое элемент управления image1 помещает filepath

filepath1 = текстовое поле, где image2контроль размещает путь к файлу.

Private Sub CommandButton1_Click()
Dim TargetRow As Integer
TargetRow = Sheets("Engine").Range("B3").Value + 1 
Sheets("Database").Range("Data_Start").Offset(TargetRow, 1) = orderid
Sheets("Database").Range("Data_Start").Offset(TargetRow, 2) = ComboBox1
Sheets("Database").Range("Data_Start").Offset(TargetRow, 3) = ComboBox2
Sheets("Database").Range("Data_Start").Offset(TargetRow, 4) = ComboBox3
Sheets("Database").Range("Data_Start").Offset(TargetRow, 5) = TextBox2
Sheets("Database").Range("Data_Start").Offset(TargetRow, 6) = TextBox3
Sheets("Database").Range("Data_Start").Offset(TargetRow, 7) = filepath1
Sheets("Database").Range("Data_Start").Offset(TargetRow, 8) = filepath2
Unload UserForm2
End Sub

enter image description here

Большое спасибо, апрель

1 Ответ

0 голосов
/ 25 октября 2018

Да, вы можете сделать это двумя способами:

1 - вы используете свой диапазон внутри функции Hyperlink.Add

'Use named range and use the offset directly in the Hyperlink.Add function
Sheets("Database").Hyperlinks.Add Anchor:=Sheets("Database").Range("Data_Start").Offset(TargetRow, 7), _
Address:=filepath1

2 - вы определяете свой диапазон как переменную (connected_path) и использовать переменную в функции Hyperlink.Add

'Use named range and a variable in the Hyperlink.Add function
Set linked_path = Sheets("Database").Range("Data_Start").Offset(TargetRow, 8)

Sheets("Database").Hyperlinks.Add Anchor:=linked_path, _
Address:=filepath2


Тестовый код

Private Sub CommandButton1_Click()
Dim TargetRow As Long
Dim filepath1 As String
Dim filepath2 As String
Dim linked_path As Variant
Dim orderid As Long
orderid = 1 'Test value for orderid

filepath1 = "G:\test\Stack Overflow\Book7.xlsx"
filepath2 = "G:\test\Stack Overflow\Book6.xlsx"

TargetRow = Sheets("Engine").Range("B3").Value + 1
Sheets("Database").Range("E3").Offset(TargetRow, 1) = orderid
Sheets("Database").Range("Data_Start").Offset(TargetRow, 1) = orderid
'.etc

'####### Hyperlink versions #######
'Data_Start is named range in Cell "C3". Cell C3 is named "Data_Start"

'Define static range (E3:E4)
Sheets("Database").Hyperlinks.Add Anchor:=Sheets("Database").Range("E3:E4").Offset(TargetRow, 8), _
 Address:=filepath2

'Use named range and use the offset directly in the Hyperlink.Add function
Sheets("Database").Hyperlinks.Add Anchor:=Sheets("Database").Range("Data_Start").Offset(TargetRow, 7), _
 Address:=filepath1

'Use named range and a variable in the Hyperlink.Add function
Set linked_path = Sheets("Database").Range("Data_Start").Offset(TargetRow, 8)

Sheets("Database").Hyperlinks.Add Anchor:=linked_path, _
 Address:=filepath2

End Sub
...