[Microsoft] [ODBC驱动程序管理器]找不到数据源名称,未指定默认驱动程序[Dynamics GP]

时间:2019-02-04 09:18:43

标签: odbc connection-string adodb dexterity dynamics-gp

我正在尝试通过灵巧性工具创建一个从excel到表格的表单上载交易,然后从示例脚本中复制一些代码。我从references获得的步骤 在这些脚本上类似:

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

最近,我在excel电源查询中查找了连接字符串,并试图将表中的数据传输到其他工作簿。然后,出现此窗口询问我的credentials。因此,我假设第一个references中没有DSN的ODBC无法正常工作。然后,我尝试将这些脚本添加到电源查询中:

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

但是,窗口显示警告信息:“只能使用凭据提供Connection属性'uid'。因此,我一直在寻找其他方法来将pwd参数输入到功率查询或灵巧脚本中。

我尝试过的最新内容是查看OLE / COM对象查看器(数百个对象)和进程监视器(百万个事件)。谢谢,有关类似问题的任何提示都可以在这里有用。

1 个答案:

答案 0 :(得分:0)

我从我的朋友参考中将以前的脚本修复为该脚本

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();

所以,我怀疑灵巧库应该为另外两个串安装其他东西。感谢您尝试回答我的困惑,对于这两个字符串^^

,我将不胜感激。