У меня есть лист Excel со списком чисел (столбец а). Исходя из этого диапазона чисел, мне нужно извлечь выбранные столбцы из таблицы в базе данных Oracle и вернуть их в Excel в столбце B.
Я намерен развернуть электронную таблицу с кодом vba для других пользователей, поэтому я бы не хотел, чтобы метод был жестко запрограммирован для конкретного компьютера.
У меня есть следующая информация:
Имя базы данных Oracle, имя пользователя Oracle, пароль Oracle, имя таблицы Oracle
Я нашел в сети код, использующий формулу для вызова кода vba для подключения к Oracle. При получении результатов я получаю сообщение об ошибке #Value. В столбце B1 есть формула [= GetToadData (A1)], которая извлекает значение поиска в столбце A1. Это инициирует код функции VBA для подключения к Oracle и получения запрошенных данных [HANDSET_SERIAL_NUMBER_NEW, SERVREQ_TRANSACTION_TS].
Я получаю #value как результат формулы, что означает, что с моим кодом sql или строкой соединения что-то не так. Я могу уточнить любую вещь, если это будет необходимо.
XXXXX = пользовательский ввод
Function GetToadData(IMEI)
Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim Cmd As New ADODB.Command
Conn.Open "PROVIDER=MSDAORA.Oracle;DATA SOURCE=XXXXX;USER ID=XXXXX;PASSWORD=XXXXX"
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdText
Cmd.CommandText = "select HANDSET_SERIAL_NUMBER_NEW, SERVREQ_TRANSACTION_TS, from mi_tempadm.wome_tm_data_new where HANDSET_SERIAL_NUMBER_NEW = IMEI;"
Set RS = Cmd.Execute
GetToadData = RS.Fields(0).Value
End Function