У нас есть пара скриптов загрузки, которые загружают данные из Excel (работа выполняется в файлах Excel) в нашу базу данных iSeries DB2. Они работали безупречно в течение нескольких лет. Все идет нормально. С января второй человек взял на себя управление сценариями, и теперь они не работают для этого человека. Для меня не проблема, работает без нареканий. Как только второй человек пытается запустить программу, Excel вылетает при первом If в коде:
If RS.BOF и RS.EOF Then
It Иногда можно пройти программу, но не всегда. Пошагово, пока RS.Open не покажет ничего плохого в параметрах BOF и EOF.
Если бы я мог, я бы прекратил использовать Excel для такого рода вещей и перевел бы все на R. Но это невозможно, поэтому я должен найти что не так со сценарием. Мое единственное предположение пока что то, что это что-то с драйверами, и поэтому мой вопрос. Что касается строк подключения VBA и драйверов ISeries ODB C, нужно ли что-то изменить в коде?
Код, который использует этот макет и просто открывает и закрывает набор записей, доказал свою эффективность для всех нас. Может быть, мне просто нужно переписать программы с нуля. Не невозможный подвиг, а скорее то, чего я бы избежал, если бы смог.
Dim cnDB As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim conStr As String
'Open a connection to ISeries
conStr = "Driver={ISeries Access ODBC Driver};System=oursys;Uid=kUid;Pwd=kPass;Library = ourschema"
Set cnDB = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
cnDB.ConnectionString = conStr
cnDB.Open
SQL_str = "Select * from TEST.TESTTABLE"
Debug.Print SQL_str
RS.Open SQL_str, cnDB, adOpenStatic, adLockOptimistic
If RS.BOF And RS.EOF Then