Почему этот набор записей SQL не открывается в outlook VBA ? ! ?
Я использую аналогичный код в других областях моей программы, Моя база данных, кажется, работает нормально, строка SQL работает нормально в Management Studio, но каждый раз, когда я добираюсь до этой точки, программа выходит из рутины, она просто переходит к концу Sub, как только попадает в нее .Открытая линия ... Если есть проблема с базой данных, то наверняка я должен получить ошибку при проверке состояния (которое возвращает 0) ?!?
Sub LoopDatabaseLeague() On Error GoTo LoopDatabaseLeagueError SQLstr = "SELECT Name, LeagueType_ID From League Where League.[LeagueType_ID] = '2';" myEmailFolder = "" Set KA_RS_League = New ADODB.Recordset If KA_RS_League.State = adStateOpen Then KA_RS_League.Close <<< State = 0 KA_RS_League.Open SQLstr, KA_DB, adOpenDynamic, adLockOptimistic <<< This line skips to the end Do Until KA_RS_League.EOF KA_Which_Newsletter.ComboBox1.AddItem (KA_RS_League![Name]) If FindString(mySubject, KA_RS_League![Name]) Then myEmailFolder = KA_RS_League![Name] End If KA_RS_League.MoveNext Loop KA_RS_League.Close LoopDatabaseLeagueError: End Sub
Что я уже пробовал:
Другой код, поискал в интернете, искал коды ошибок
CHill60
Вы "проглатываете" ошибку, имея пустой обработчик ошибок-это очень плохая практика. Прокомментируйте On Error GoTo LoopDatabaseLeagueError
, запустите код и скажите нам, в чем на самом деле заключается ошибка
Gary Heath
Это имеет очень мало значения, вместо того, чтобы следующий оператор был конечным Sub, это строка, следующая за вызовом этого модуля :-(
Нет ли где-нибудь переменной, которая содержит результат оператора ? Если да, то что / где я могу его найти ?!?
CHill60
Это имеет огромное значение. Избавившись от on error goto, вы получите видимое исключение, которое поможет вам выяснить, в чем проблема. У вас есть "понятия не имею, почему программа не может просто сказать мне это !!!"... Он не говорит вам этого, потому что вы сказали программе ничего не говорить вам о каких-либо ошибках.
Gary Heath
Я попробовал Goto 0 & Goto Next, но он мне ничего не сказал, я имел в виду, что если нет подключения к базе данных, где я создаю набор записей, то почему он не сообщает об этом ни в одном из вариантов Goto ?!?
CHill60
Обратите внимание на ссылку ответа рядом с комментариями? Если вы используете эту ссылку, то плакат будет уведомлен о вашем ответе. Другими словами, я мог бы оказать вам дополнительную помощь еще 4 часа назад
Gary Heath
Ах да, он появляется только тогда, когда мой курсор находится над ним, так что я его не заметил !! Постараюсь запомнить в будущем ...