[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. Спасибо за попытку ответить на мою путаницу, хотя, я был бы признателен за больше ответов на эти два сужения ^^

Другие вопросы по тегам