Я пытаюсь использовать vba (Access 2013) для автоматизации веб-сайта поиска маршрута (https://www.theaa.com/driving/mileage-calculator.jsp)
У меня есть некоторый рабочий код, который в командной кнопке формы позволяет мне:
1. открыть внешний экземпляр Internet Explorer (в отличие от элемента управления браузера)
2. введите почтовый индекс / адресную информацию из моей базы данных
3. нажмите на ссылку, которая добавляет дополнительные поля назначения, если требуется
4. изменить цену за милю по умолчанию из текстового поля в моей форме
5. нажмите кнопку «Получить маршрут»
При нажатии «Get Route» создается страница с результатами поиска, которая включает статическую карту Google с шагами маршрута, отмеченными на фиолетовой линии ABC и т. Д. Я хочу сделать это изображение и использовать его в моей БД. Форма с использованием веб-браузера или элемента управления полем изображения, чтобы я мог использовать его в отчете, когда я провел поиск наиболее экономичного маршрута.
Я посмотрел на DOM Explorer и исходный код, но не могу понять, как это сделать, или это возможно? Существует div "gmnoprint", который выделяется, когда карта выбрана, а в исходном коде есть ссылка на "mapContainer", который, кажется, находится в правой части последовательности действий / результатов.
Я не знаю, как сверлить ссылки и создать код, который позволит мне поместить карту в мою форму. Выбор кода, который я разместил, является частью процесса выбора, который определяет, что может быть введено в мои текстовые поля, код изображения GoogleMap предположительно будет идти туда, где указано?
Я бы сказал, что я ученик-энтузиаст и умеренный пользователь без какого-либо официального обучения Буду очень признателен за любые ответы.
Dim IE As New InternetExplorer
Dim doc As HTMLDocument
Dim RDate As String
On Error GoTo Errorhandler
RDate = Me.TxtRouteDate
'................................................................
Select Case Me.TxtNoSum
Case Is = IsNull(Me.TxtPC1) Or IsNull(Me.TxtPC2)
MsgBox "Please Enter at least 2 Postcodes"
Case Is <= 2
MsgBox "Please Enter at least 2 Postcodes"
Case Is = 3
IE.Visible = True
IE.Navigate "https://www.theaa.com/driving/mileage-calculator.jsp"
IE.Top = 20
IE.Left = 50
IE.Height = 1300
IE.Width = CInt(Int((1000 * Rnd()) + 1))
While IE.Busy
DoEvents
Wend
Set doc = IE.Document
With doc
'Clears previous searches
doc.all("mcDeleteRoutesLink").Click
'Inserts info into web site text boxes.
doc.getElementById("RouteDate").Value = RDate
doc.getElementById("RouteFrom").Value = Me.TxtPC1
doc.getElementById("RouteTo").Value = Me.TxtPC2
doc.getElementById("fuelPricePerLitre").Value = Me.TxtPPL
End With
While IE.Busy
DoEvents
Wend
'Clicks "Get Route" Button
Dim btn As Object
Set btn = doc.getElementById("getRouteWrapper").Children(0)
If Not btn Is Nothing Then
btn.Click
While IE.Busy
DoEvents
Wend
' Inserts distance recorded by AA mileage calculator into text control on my form
Set htmlDist = doc.all("routeDistanceTotal")
If Not htmlDist Is Nothing Then
Me.TxtDistance = htmlDist.innerText
'Google image code to go here after map page loads?
End If
End If
(Next Case)