[Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию [Dynamics GP] - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь создать транзакцию загрузки формы из 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[];

Когда я пыталсяПример обоих этих сценариев, получите ошибку, подобную этой warning

Затем я прошу другую помощь от моего другого начальника.Он дал мне эти сценарии: 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"";";

Затем снова получилэти ошибки: Provider cannot be found

Недавно я посмотрел строку подключения по запросу Power Excel и попытался перенести данные из таблицы в другую книгу.Затем это окно появляется, чтобы спросить мой credentials.Итак, я предполагаю, что ODBC без DSN из моих первых ссылок не работает должным образом.Затем я попытался добавить эти сценарии в запрос питания:

conn.ConnectionString = 
          "Dsn=DsnName;" + 
          "Uid=UserName;" + 
          "Pwd=Secret;"; 

Но в окне отображается предупреждение «Свойство подключения« uid »может быть предоставлено только с использованием учетных данных. Поэтому я застрял, находя альтернативный способдля ввода параметра pwd в запрос мощности или в сценарий ловкости.

Последнее, что я когда-либо пробовал, - это просмотрщик объектов OLE / COM (сотни объектов) и монитор процессов (события миллионов). Любые советы, касающиеся подобных проблем, могут быть полезныздесь, спасибо.

1 Ответ

0 голосов
/ 28 февраля 2019

Я исправляю свой предыдущий сценарий в этом из ссылок моего друга

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

...