[Microsoft][Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию [Dynamics GP]
Я пытаюсь создать транзакцию загрузки формы из Excel в таблицу с помощью инструментов ловкости, а затем скопировать код из примеров сценариев. Шаги, которые я получил из ссылок, аналогично этим скриптам:
conn.ConnectionString =
"Driver={Microsoft Excel Driver (*.xls)};" +
"Driverid=790;" +
"Dbq=C:\MyPath\SpreadSheet.xls;" +
"DefaultDir=C:\MyPath;";
conn.Open ();
другой пример от моего начальника, который выглядит так:
sheetbuf = itemname('(L) Sheet' of window PMS_Upload_Budget, '(L) Sheet' of window PMS_Upload_Budget);
buf1 = sheetbuf;
sheetbuf = "[" + sheetbuf +"$]";
recordset = COM_CreateObject("ADODB.Recordset");
sDriverExcel="{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}";
sConString="DRIVER="+sDriverExcel+";DriverId=790;DBQ="+'(L) Native Path'+";DefaultDir=";
recordset.Open("SELECT COUNT(*) as RowCount FROM " + sheetbuf, sConString);
row = recordset.Fields.Item[0].Value;
recordset.Close();
recordset.Open("SELECT * FROM " + sheetbuf, sConString);
col = recordset.Fields.Count[];
Когда я попытался сэмплировать оба этих сценария, я получаю сообщение об ошибке, подобное этому предупреждению
Затем я прошу другую помощь от моего другого начальника. Он дал мне такой скрипт: sample2 Итак, я попытался последовать его примеру, установив AccessDatabaseEngine_X64.exe и изменив строку подключения с помощью этого скрипта:
sConString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ '(L) FullPath' + ";Extended Properties=""Excel 12.0 Xml; HDR=YES;IMEX=1"";";
Затем снова получили эти ошибки: поставщик не может быть найден
Недавно я посмотрел строку подключения по запросу Power Excel и попытался перенести данные из таблицы в другую книгу. Затем это окно появляется, чтобы спросить мои полномочия. Итак, я предполагаю, что ODBC без DSN из моих первых ссылок не работает должным образом. Затем я попытался добавить эти сценарии для Power запроса:
conn.ConnectionString =
"Dsn=DsnName;" +
"Uid=UserName;" +
"Pwd=Secret;";
Но в окне отображается предупреждение: "Свойство Connection" uid "может быть предоставлено только с использованием учетных данных. Поэтому я застрял, находя альтернативный способ ввода параметра pwd в запрос мощности или сценарий ловкости.
Последнее, что я когда-либо пробовал, - это просмотрщик объектов OLE/COM (сотни объектов) и монитор процессов (миллионы событий). Любые советы по аналогичным вопросам могут быть полезны здесь, спасибо.
1 ответ
Я исправляю свой предыдущий сценарий в этом по ссылкам моих друзей
sheetbuf = itemname('(L) ExcelRow' of window Integrate_Transaction, '(L) ExcelRow' of window Integrate_Transaction);
buf1 = sheetbuf;
sheetbuf = "[" + sheetbuf +"$]";
connection = COM_CreateObject("ADODB.Connection");
recordset = COM_CreateObject("ADODB.Recordset");
conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + '(L) FullPath' + ";Extended Properties=Excel 8.0;";
connection.Open(conString);
recordset.Open("SELECT COUNT(*) as RowCount FROM " + sheetbuf , connection, ADODB.adOpenDynamic, ADODB.adLockOptimistic);
row = recordset.Fields.Item[0].Value;
recordset.Close();
Итак, я подозревал, что библиотека ловкости должна установить что-то еще для этих двух других constring. Спасибо за попытку ответить на мою путаницу, хотя, я был бы признателен за больше ответов на эти два сужения ^^