Tag: odbc

Excel 2007 – 1004运行时错误刷新查询表

看来,这个错误是非常普遍的,许多现有的解决scheme解决不同的问题。 在我的情况下,我创build了一个在Excel 2010中工作的macros,在Excel 2007中不起作用。 这里是代码的总结: cn = "ODBC;Driver={SQL Server Native Client 10.0};Server=serverName;Database=dbName;Trusted_Connection=yes;" sql = "select top 10 * from tableName" Dim S As Worksheet Set S = ActiveWorkbook.Sheets("Medical") With S.QueryTables.Add(Connection:=cn, Destination:=S.Range("B1")) .CommandText = sql .Refresh BackgroundQuery:=False End With 此代码在Excel 2010中完美执行,但在Excel 2007中出错。 我是否需要更改2007年的连接string结构,还是有工作中的另一个问题?

Oracle ODBC TNS-less连接string(用于64位Excel)

是否有支持TNS-less连接(或EZ-Connect)约定的64位Oracle ODBC驱动程序? 我曾经使用过“允许使用TNS的连接string”的Microsoft ODBC for Oracle,但是这个版本已经折旧了很长时间,并且没有64位版本(也就是说它不适用于64位的Office / Excel )。 我曾经有过在我的组织中用户有时缺less或无效的tnsnames.ora文件的经验。 我想在不需要tnsnames.ora的情况下使用无DSN连接string,可以在安装了适当的Oracle驱动程序的任何计算机上成功执行该string。 这是使用折旧的“用于Oracle的Microsoft ODBC”驱动程序(仍适用于32位办公室用户)的旧DSN-less TNS-less连接string的示例: DRIVER={Microsoft ODBC for Oracle}; UID=myun; PWD=mypass; SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=myhostname)(PORT=1521))(CONNECT_DATA=(SID=mysid))); 我一直试图从甲骨文OraClient11g_home1从Oracle的ODBC驱动程序连接,但无论我如何尝试(包括EZ_Connect)我不能得到它的工作,而不需要tnsnames.ora,我不断得到这个popup,要求我指定一个服务名称无论如何: 我已经尝试过使用EZ-Connect和许多其他指定Oracle服务器IP /主机名称的变体,如下所示,但没有运气: Driver={Oracle in OraClient11g_home1};Server=//OracleIPAddress:1521/MySID; Uid=myUsername;Pwd=myPassword;

如何将40个工作簿中的Excel数据与25个工作表结合在一起?

我有40个Excel工作簿,每个工作表都有25个工作表,其中包含列A:Q和可变行数(将less于5000行)中的数据。 40个工作簿中的每一个代表1个团队。 25个工作表中的每一个都是1个月的数据,这些表格被命名为“1月15日”,“2月15日”等…到“12月16日”,因此显然目前只有5张表格中有数据现在是5月15日)。 每个工作簿都是为将来的数据设置的。 我需要把所有的数据放到一个地方,我认为最好使用数据透视表。 到目前为止,我已经build立了一个包含VBA代码的附加工作簿,将所需的数据放入一个数据透视表中。 这是通过在每个团队的工作表上设置checkbox以及每个月checkbox来实现的。 如果checkbox被选中(= TRUE),那么该团队和月份的数据将被拉动。 例如,如果select“团队1”和“1月15日”,数据透视表将显示团队1的1月份数据。 如果select了“Team 5”和“Mar-15”,那么Team 1和Team 5的1月和3月的数据将被抽中。 通过编译所需数据的一个SQLstring(我的SQL知识限于2天的研究!),在VBA中是这样做的,例如: SELECT * FROM `Team 13.xlsx`.[JAN-15$] UNION ALL SELECT * FROM `Team 13.xlsx`.[FEB-15$] UNION ALL SELECT * FROM `Team 13.xlsx`.[MAR-15$] UNION ALL SELECT * FROM `Team 15.xlsx`.[JAN-15$] UNION ALL SELECT * FROM `Team 15.xlsx`.[FEB-15$] UNION ALL SELECT * FROM `Team 15.xlsx`.[MAR-15$]" […]

在SQL语句中使用范围值作为参数

我通过ODBC连接到数据库。 我有用VBA编写的SQL语句。 我已经定义了三个parameter passing,定义为单元格引用: Dim Param1 As String Dim Param2 As String Dim Param3 As String Param1 = Sheets("SHEET1").Range("P1").Value Param2 = Sheets("SHEET1").Range("P2").Value` Param3 = Sheets("SHEET1").Range("P3").Value Where语句的between子句工作正常(表格是例子)这是Statement的结尾: (VPXXX.PDXXX Between " + Param1 + " and " + Param2 + "))" 当我试图在最后添加一个“相等”的语句时,我会抛出一个错误“General ODBC Error: AND ((VPXXX.PDXXX=" + Param3 + " ))" 注意:“下面”结束 AND ((VPXXX.PDXXX='LDPDQ'))" 它只是一个单一的供应商的代码 希望这是足够的信息…..第一次在SQL中build立一个查询。 提前致谢

从excel连接到mysql:ODBC驱动程序不支持所请求的属性

我想从Excel中添加数据到MySQL。 我得到这一行上面的错误:rs.Open strSQL,oConn,adOpenDynamic,adLockOptimistic 这里是我的代码: Dim oConn As ADODB.Connection Private Sub ConnectDB() Set oConn = New ADODB.Connection oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _ "SERVER=localhost;" & _ "DATABASE=employees;" & _ "USER=root;" & _ "PASSWORD=some_pass;" & _ "Option=3" End Sub Function esc(txt As String) esc = Trim(Replace(txt, "'", "\'")) End Function Private Sub InsertData() Dim rs As […]

使用odbc excel驱动程序input数据types

我正在使用Microsoft Excel驱动程序将Excel文档导入adodb.recordset,以便我可以删除重复的行并将其放入SQL Server数据库。 第一列的值是192,13U,JJJ等,但由于某些原因,查询会将其转换为double值,并且具有alpha值的任何行都将转换为Null。 从我可以告诉这是因为多数types是数字而不是文本。 我试着把它,但有一个错误。 这是我的function: Function Read_Excel(ByVal sFile As String) As ADODB.Recordset On Error GoTo fix_err Dim rs As ADODB.Recordset rs = New ADODB.Recordset Dim sconn As String rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset rs.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic sconn = "DRIVER=Microsoft Excel Driver (*.xls); ImportMixedTypes=Text; " & "DBQ=" & sFile & ";Extended Properties='Excel 8.0;HDR=No;IMEX=1';" […]

通过PHP的ODBC驱动程序使用Microsoft Excel

我正在尝试插入数据并使用ODBC连接从Excel中select数据。 我设法连接到它: $dbh = new PDO("odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=$file_name", $username, $password); 但是,我不确定如何查询Excel,因为这是最简单的文档! 我试图这样做: $query = "INSERT INTO $sheet ($cell) VALUES ($value)"; $result = $dbh->query($query); 但是这会导致错误: 数组([0] => 07002 [1] => -3010 [2] => [Microsoft] [ODBC Excel驱动程序] Microsoft Office Access数据库引擎找不到对象'Sheet1'。 (SQLExecute [-3010] at ext \ pdo_odbc \ odbc_stmt.c:254)[3] => 07002) 按目标,希望他们的意思是一个excel表? 感谢所有的帮助

在VBA中使用ADO连接到PostgreSQL

我无法find使用VBA ADO从Excel连接到PostgreSQL数据库的清晰可靠的示例。 无可否认,我是VBA的新手,大多数示例和教程都以Access或MSSQL为中心。 (我主要在Ruby,Rails,Perl和PostgreSQL中工作。) 我正在查找代码来连接并返回一个简单的查询(SELECT * FROM customers;)到Excel工作表。 连接参数(服务器IP,用户,传递,数据库)位于单独的工作表中的单元格内。 我感谢你的帮助和耐心。 码: Sub ConnectDatabaseTest() Dim cnn As ADODB.connection Dim cmd As ADODB.Command Dim param As ADODB.Parameter Dim xlSheet As Worksheet Dim rs As ADODB.Recordset Dim sConnString As String Dim i As Integer ' Connection Parameters Dim strUsername As String Dim strPassword As String Dim strServerAddress As […]

MS SQL ServerdateExcel

我有从SQL Server链接到Excel文件的数据。 SQL Server上的列格式是datetime2 。 当我通过ODBC连接获取数据时,它会以string的forms出现? 我试过使用 CAST(column AS DATE ) 但是这并没有奏效。 我尝试通过重新格式化 CONVERT(VARCHAR(10), column, 103) 以及但没有工作。 我试图通过微软查询检索数据,但没有奏效。 目前我正在使用VBA代码,如: While (ActiveCell.Value <> "") ActiveCell.Value = DATEVALUE(ActiveCell.Value) ActiveCell.Offset(1,0).Activate Wend 并循环遍历需要这种处理的每列,但是多列中的100000行需要永久循环。 有没有其他的select?

使用ODBC连接从Excel VBAmacros更新Oracle表

我在Excel 2010中有一个工作表,它通过ODBC DSN连接来自Oracle数据库的QueryTables中的数据。 我需要从电子表格中获取数据,并使用它来更新同一个Oracle数据库中的一个表。 我不能从QueryTable进行更新,但这是我能够使用ODBC的唯一连接方法。 我试图build立一个ADODB连接,但我得到一个 'Run-time error '-2147467259 (80004005'): Automation error Unspecified error 这是我使用的代码: Sub Upload_Click() Dim cn As ADODB.Connection Set cn = New ADODB.Connection With cn .Provider = "MSDASQL" .ConnectionString = "DSN=xcognosD;" .Open End With cn.Close End Sub 补充说明,我在Windows 7上使用64位odbc驱动程序,连接到Oracle 11数据库。