2016-05-10 4 views
0

Контекст: привет сообщества. У меня проблема. Мой босс попросил меня вытащить имена из какой-либо базы данных, используя идентификатор сотрудника. Это не было бы проблемой только в том случае, если доступ к базе данных был не через форму, написанную на PHP. Второй заключается в том, что мне нужно вывести около 10 тыс. Результатов. Я подсчитал время, необходимое для этого, и получил 55 часов скучной работы. И я говорю об идеальной производительности либо меня, и сервера, к которому я собираюсь подключиться. Я думал, что было бы идеально, если бы vba мог сделать это для меня. Ситуация такова.Отправить форму с использованием элемента без ID

Проблема: форма находится на странице в интрасети. Пользователь вводит идентификатор, а при нажатии кнопки «ОК» создается таблица (не присутствует перед отправкой), где отображается имя сотрудника. Проблема в том, что кнопка «Ok» не имеет идентификатора, поэтому использование GetElementById не может быть и речи. Мне нужно как-то представить форму. Помог ли кто-нибудь?

Код:

Sub submitFeedback3() 
    Application.ScreenUpdating = False 
    Dim IE As Object 

    Set IE = New InternetExplorerMedium 
    IE.Visible = True 
    IE.navigate "SomePHP.php" 

    Application.StatusBar = "Submitting" 

    While IE.Busy 
     DoEvents 
    Wend 
    Dim doc As Object 
    Dim formx As Object 
    Set doc = IE.document 

    IE.document.getElementById("search_usrn").Value = "someID" 

    IE.document.all.Item("Ok").Click 

    Application.StatusBar = "Form Submitted" 
    IE.Quit 
    Set IE = Nothing 

    Application.ScreenUpdating = True 
End Sub 

Я установил часы в IE.document и показал структуру. Мне удалось найти кнопку отправки, но я не могу ее вызвать.

Это было в IE.document> формы> Пункт 1> Пункт 5

Это folowing атрибуты, которые я смог найти его:

outerHTML "INPUT type=submit value=Ok" 
type "submit" 
unique id "ms__id3" 
value "Ok" 

Могу ли я запустить это как-то с помощью этого? Или есть другой способ? Надеюсь, что ты мне поможешь

ответ

0

Умело управлять этим через несколько минут после того, как я разместил вопрос. Просто для других, пытающихся решить эту проблему. Если кнопка отправить не имеет идентификатора вы можете заставить документ представить, используя только

document.forms(numberOfForm).submit 

Я знал, что, но я сделал это плохо. Не повторяйте мою ошибку, цифры начинаются с 0, а не 1. Таким образом, правильный номер для только формы на странице был 0.

+0

Это отдельный вопрос, пожалуйста, разместите его как новый. –

Смежные вопросы