Добрый день,
я хочу воспользоваться API Яндекс.Карт через http в своей форме в Access для получения координат введенного адреса. Функция получает город и адрес и возвращает координаты.
Половина запросов работает нормально, и все хорошо работает, возвращает xml-документ с координатами. Но другая половина дает следующую ошибку в момент открытия соединения: -2147217887 (80040e21) The download of the specified resource has failed.
Код такой:
Public Function YandexCoord(City As Variant, address As Variant) As StringDim adoConn As ADODB.ConnectionDim adoRS As ADODB.RecordsetDim yandurl As StringSet adoConn = New ADODB.ConnectionSet adoRS = New ADODB.RecordsetadoConn.Open "Provider=MSDAOSP; Data Source=MSXML2.DSOControl;"yandkey = "AIubs0sBAAAAv9znOAQAjJv0OLU5VvqogJTzyUfsjXo8lloAA AAAAAAAAADIKqUffHTfOYiuar 6iUlm07SbEcQ==" yandurl = "http://geocode-maps.yandex.ru/1.x/?geocode=Беларус " _ь & IIf(City & "" <> "", ",+" & Spaces2Url(City & ""), "") & IIf(address & "" <> "", ",+" & Spaces2Url(address & ""), "") _& "&key=" & yandkeyadoRS.Open yandurl, adoConn ' <------------ Ошибка тутDim iLevel As IntegeriLevel = 0WalkHier iLevel, adoRS, YandexCoord ' эта процедура запускает разбор xml, но до нее не доходит делоIf found = False Then YandexCoord = "не найдено или ошибка"Set adoRS = Nothingfound = FalseEnd FunctionFunction Spaces2Url(str As Variant) As StringDim n As LongFor n = 1 To Len(str)If Mid(str, n, 1) = " " Then str = Left(str, n - 1) & "+" & Mid(str, n + 1)Next nSpaces2Url = strEnd Function
При открытии сгенерированного адреса в Браузере все ок, а если проверить ответ сервера из Access, то в нем будет 400 - Bad Request. Причем если запросить координаты "Беларусь+Барановичи,+Красногвардейска+18" он вернет координаты г. Барановичи (в Яндексе нет карт г. Барановичи), а если запросить "Беларусь+Барановичи,+Красногвардейская+18"- то будет ошибка. Или, например, если спросить адрес "Беларусь,+Берестовица" - найдет, а "Беларусь,+Большая+Берестовица" - ошибка. Если открыть xml-документ на диске, полученный через браузер и сохраненный, то все ок.
Ключ API получен на IP-адрес (сегодня)
Что-то ничего не пойму.