Tag: adodb

传递logging集types错误

试图将Recordset传递给我的某个类的某个方法时出现types错误。 我的代码如下所示: Dim rs As ADODB.recordset Set rs = New ADODB.recordset 'do some connection stuff 'create command rs.Open cmd dataWriter.write(rs) 该方法如下所示: sub write(byRef record as ADODB.recordset) range("A1").CopyFromRecordset record end sub 一切工作,除了types错误时,我试图将logging传递给write子(例如,如果我打电话range("A1").copyfromrecordset rs在第一个代码块工作正常)。 有什么想法吗? 谢谢。

Excel Vba。 从Image控件获取ADODBstream(不与LoadFromFile)

使用下面的函数,我可以从文件加载一个图片,并将其编码为base64: Public Function EncodeFileBase64() (strPicPath As String) As String Const adTypeBinary = 1 ' Binary file is encoded ' Variables for encoding Dim objXML Dim objDocElem ' Variable for reading binary picture Dim objStream ' Open data stream from picture Set objStream = CreateObject("ADODB.Stream") objStream.Type = adTypeBinary objStream.Open objStream.LoadFromFile (strPicPath) ' Create XML Document object […]

带有VBA Excel的SQL数据透视函数文本文件数据库

我们没有访问SQL服务器的工作,所以我必须在Excel VBA中devise一个应用程序,并使用文本文件(CSV)来存储数据。 我没有问题查询数据,joinCSV的,但我想使用SQL数据透视/ Unpivot语句将其中一列转置为行。 我不知道该function是否存在,因为我不断收到我的FROM子句中存在语法错误的错误。 Public Function getData() As ADODB.Recordset Dim path As String, conn As ADODB.Connection, rs As ADODB.Recordset path = ThisWorkbook.path & "\" Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & path & ";" & _ "Extended Properties=""text; HDR=Yes; FMT=Delimited; IMEX=1;""") rs.ActiveConnection = conn […]

VBA ADO Recordset .Copyfromrecordset长时间运行

我正在寻找可以解决这个运行时间构build的VBA代码,或者是什么可能导致这个问题的build议。 我正在运行一个VBA脚本,使用ADODB从SQL Server数据库中检索数据。 我已经运行testing的行数据复制到我的Excel表格。 运行时间是变化的; 然而,我发现这条线的运行时间在3-30秒之间: Sheets(1).range("A8").CopyFromRecordset recordSet logging集中的数据由300行和13列组成。 有一件我觉得奇怪的事情是,当excel应用程序closures并重新打开时,运行时似乎重置为正常。 下面是对.copyfromrecordset行testing的运行时间的一个概念: testing1:3秒 testing2:3秒 testing3:3秒 testing4:5秒 testing5:5秒 testing6:6秒 testing7:7秒 testing8:6秒 testing9:8秒 testing9:10秒 … testing20:24秒 我运行本地命令的testing,如格式化单元格宽度/高度,这些运行时间在1或2秒不变。 也许我错误地使用了logging集,或者如果没有find解决scheme,我只会减less数据库调用,这会阻止我获得最新的数据。 我已经通过检查任何我认为可能是问题的未封闭的logging对象,但没有任何开放。 Function Query(SQL As String) Dim recordSet As ADODB.recordSet Dim Field As ADODB.Field Set recordSet = New ADODB.recordSet recordSet.Open SQL, Conn, adOpenForwardOnly, adLockReadOnly, adCmdTxt If recordSet.State Then 'seting up table […]

Excel ADODB批处理问题

我已经在excel中编写了下面的VBA / ADODB代码,当直接运行时工作正常,但是通过批处理VBS脚本运行时,SQL语句没有执行。 任何想法是什么原因? (Windows 7 / Excel 2012) 如果您对代码有任何其他意见,请告诉我。 谢谢。 Sub RunSQL() Dim conn As Object, rst As Object, rst2 As Object Dim strConnection As String, strSQL As String, strSQL2 As String Dim i As Integer 'start error handler On Error GoTo ErrorHandler: Set conn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB.Recordset") 'connection string EXTERNAL […]

在多个列中search

我有一个访问数据库,我从Excel中通过VBA和ADODB的帮助search。 它工作得很好,但是我一次只能search一件东西。 假设我想search列[1]中“first name”的所有实例,列[2]中也有“last name”。 或者,列[1]中的“名”和列[3]中的“地址”。 我将如何去做一个用户表单上的文本框? 我想在某种程度上添加“名字+姓氏”或其他东西,但我无法弄清代码的逻辑。 有什么build议么? 这是我现在所拥有的。 Private Sub cmd_lookup_Click() Dim cn As Object Dim rs As Object Set cn = CreateObject("ADODB.Connection") Set sqlConnect = New ADODB.Connection Set rs = CreateObject("ADODB.RecordSet") sqlConnect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Source\database.accdb;Persist Security Info=False;" cn.Open sqlConnect rs.ActiveConnection = cn SearchCriteria = "%" & searchCrit.Text & "%" rs.Open "SELECT [1],[2] […]

共享excel文件包括adodb连接

您好我有本地networking中的问题白色excelvba和adodbe连接我使用下面的代码从这个链接描述 Sub tbl() Dim myCn As MyServer Set myCn = New MyServer Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.Open "Select * from mytbl1", myCn.GetConnection Range("A3").CopyFromRecordset rs rs.Close myCn.Shutdown Set rs = Nothing Set myCn = Nothing End Sub 和vbaproject ; 如何在我的系统中正常工作,在这里问题为什么它不能在本地networking中的其他PC非常感谢

无法使用VBA中的ADODB更新字段

我的目标是能够从封闭的工作簿中读取和写入单元格值。 我使用ADODB来获取所需的信息。 一个文件是由企业网站生成的,所以在使用实际文件之前我无法更改内容。 该文件是Excel格式。 单元格中没有公式,只是值。 我想从工作表中得到date,string,整数,但是我遇到了一些限制。 我写了示例代码来展示发生了什么事情: Dim rsConn As ADODB.Connection Dim rsData As ADODB.Recordset Dim strFileName As String Dim strFieldNames As String Dim intValue As Integer strFileName = "C:\Tests\Sample.xlsx" ' Fullpath to a workbook 'strFieldNames = "CInt([Proj_Year]) as [Proj_Year]" 'strFieldNames = "[Proj_Year]" strFieldNames = "*" Set rsConn = New ADODB.Connection With rsConn .ConnectionString = […]

Oracle SQL Excel VBA中的多个过程

Excel版本 :2013 带有ADODB的SQL Oracle 我对ADODB和SQL来说比较陌生。 我有以下代码: objMyCmd.CommandText = "begin " & Chr(10) & _ "scheme1.function1(to_date('2017.01.01','YYYY-MM-DD'), to_date('2017.03.01','YYYY-MM-DD'),'ALEX'); " & Chr(10) & "commit; " & Chr(10) & "end; " objMyCmd.CommandType = adCmdText objMyCmd.Execute objMyCmd.CommandText = "SELECT * from table1" objMyCmd.CommandType = adCmdText objMyCmd.Execute SQL解释器中的代码如下所示: begin scheme1.function1(to_date('2017.01.01','YYYY-MM-DD'),to_date('2017.03.01','YYYY-MM-DD'),'ALEX'); commit; end; SELECT * from table1 当运行第二个objMyCmd.Execute我得到: [Oracle][ODBC][Ora]ORA-00903: invalid table name […]

在同步的OneDrive文件夹中使用Excel工作簿作为ADODB连接的ODBClocking错误

这个问题似乎非常深奥,但却让我头痛不已。 概要 我在同步的OneDrive for Business文件夹中有一个Excel工作簿,我想将其用作ADODB连接的数据源,该连接从工作簿本身的代码中调用。 但是,每当我尝试build立连接时,VBA都会引发错误。 如果文件位于未命名的文件夹中,例如“我的文档”,则不会发生该错误。 我所需要的只是对连接的只读访问。 我可以用不同的方式形成连接string来完成这项工作吗? 错误详情 -2147467259 用于ODBC驱动程序的Microsoft OLE DB提供程序 [Microsoft] [ODBC Excel驱动程序]一般错误无法打开registry项临时(易失性)Ace DSN进程0x17e0线程0x3cd4 DBC 0x920bf1c Excel'。 我尝试了一个不同的连接string,我尝试使其只读(Mode = Read): cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read; _ Data Source=" & ActiveWorkbook.Path & Application.PathSeparator & _ ActiveWorkbook.Name & "; Extended Properties=""Excel 12.0 Macro;HDR=YES"";" 但是我得到一个不同的错误: -2147467259 Microsoft Access数据库引擎 无法更新。 数据库或对象是只读的。 码 Sub TestExcelADODB() Dim cnx As […]