Tag: adodb

Excel VBA,ADO连接,返回date如果存在,或者上一个可用date

我打开了一个新的ADODB连接,并设置了第一个字段中的date和第二个字段中的值的新logging集。 2016年1月1日 2016年2月1日 2016年4月1日 2016年5月1日 所以我build立函数myfunction(mydate) ,应该返回等于或小于(早于)mydate的最大可用date: myfunction(mydate as date) Dim CurrentDate as Date Set rst = cn.Execute("SELECT * FROM tbl1 ORDER BY dates;") CurrentDate = worksheetfunction.INDEX(rst.Fields(0),worksheetfunction.MATCH(CDate(CurrentDate),rst.Fields(0), 1)) myfunction = CurrentDate end function 结果应该是 myfunction(“02/01/2016”)= 02/01/2016 myfunction(“03/01/2016”)= 02/01/2016 这适用于Excel电子表格,但是它出现错误“无法获得WorksheetFunction的匹配属性”。 有没有另一种方法来获得使用此数组的结果?

Excel / ADO:访问logging集时出错

我通常可以运行下面的代码而没有问题,但有时候在logging集中找不到任何logging。 文件本身很大 – 超过200k行。 此外,它有一些合并的单元格,列宽不够宽,无法自动拟合查看数据(我不确定是否可能是一个促成因素)。 我还想补充一点,没有logging被发现的时间主要在运行Excel 2010的计算机上,而成功的实例已经在运行Excel 2013的计算机上。 这是我的代码: Dim oConn As New ADODB.Connection Dim oRS As New ADODB.Recordset Dim sPath Dim sSQL As String Dim fd As Office.FileDialog Dim fr11 As String Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "FR11". sSQL = "select F3,F6,F8,F9,F10,F18,F22,F23,F28 from [Natural Detail $] where F18 = '0000121046' or F25 = 'Natural GL Acct Nbr'" […]

VBA ADO引用用户定义的错误

我想要完成的一点背景我写了一个vba脚本,在我的Python代码中执行查询SQL。 我一直坚持和研究这个ADO.Recordset不断给我一个'用户定义的错误'我已经添加了所有必需的引用(据我所知)的代码被称为出的GUID。 请参阅下面的代码。 import pyodbc import os import win32com.client as win32 import comtypes, comtypes.client xl = win32.gencache.EnsureDispatch('Excel.Application') xl.Visible = True ss = xl.Workbooks.Add() sh = ss.ActiveSheet xlmodule = ss.VBProject.VBComponents.Add(1) sCode = '''Sub Download_Standard_BOM() 'Initializes variables Set cn = CurrentProject.Connection Set rst = New ADODB.Recordset Dim cn As Object: Set cn = CreateObject("ADODB.Connection") Dim rst As […]

使用ADODB从closures的文件按Tab键顺序返回工作表名称

我能够连接和查询特定的工作表。 某些文件可能会有第一个工作表名称不同或更改,有时可能会有多个。 我尝试了几个不同的函数来返回完整的列表。 但是,没有人按照它们在Excel中显示的顺序给我提供工作表选项卡名称。 最简单的方法是这样的。 Set cat = CreateObject("ADOX.Catalog") Set cat.ActiveConnection = objConnection Debug.Print cat.Tables.Count For Each tbl In cat.Tables Debug.Print tbl.Name Debug.Print tbl.datecreated Debug.Print tbl.datemodified Next tbl 我想我可以通过datecreated或datemodified来确定,但是所有4的date都是一样的。 > This prints for me: > Avion$ > 3/17/2017 12:43:19 PM > 3/17/2017 12:43:19 PM > Meow$ > 3/17/2017 12:43:19 PM > 3/17/2017 12:43:19 PM > […]

select不同的值一列到多列

我有以下数据:第1列与许多类别和第2列与每个类别的值。 我需要转换或透视这些信息,以显示跨多列的类别组的每个值。 col1 col2 —————- 1 a 2 b 2 c 2 d 3 e 3 f 4 g 4 h 而需要这个结果: col1 col2 col3 col4 col5 col6 ———————————————– 1 a 2 bcd 3 ef 4 gh 每tb1计数(第2列)组(第1列)不超过7个值。 来自tb1第2列的所有值是不同的,大约+50logging。

如果数据匹配,Excel VBA ADODB SQL总和

这是我目前用来生成我的SQLstring,目前正在获取正确的信息的查询。 Dim colArray As Variant: colArray = Array(7,9,6,8,10,11,15,25) szSQL = "SELECT sWIR.[F" & Join(colArray, "], sWIR.[F") & "], sCodes.[F7] FROM [" & SourceWIR & "] sWIR INNER JOIN [" & SourceCODES & "] AS sCodes ON sWIR.[F5] = sCodes.[F6] WHERE sWIR.[F1] =""" & Address & """ ORDER BY sCodes.[F7], sWIR.[F7];" 我需要的是,如果第7,9,6列的数据与第10列的数据相等 下面是完整的代码,我用于ADODB连接 Dim szConnect As […]

通过ADODB访问Excel工作簿 – 同时有多个用户

我试图通过不同的远程机器上的ADODB连接访问放置在共享path中的Excel工作簿。 但是,当多个远程机器试图访问同一个Excel工作表时,会出现以下错误: Microsoft Office Access数据库引擎无法打开或写入文件“”。 它已经由另一个用户专门打开,或者您需要查看和写入其数据的权限。 连接string使用 : strConnection_Write = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _ Runmanager_path & ";Mode= Share Deny None" & _ ";Extended Properties=""Excel 8.0;HDR=Yes;"";" 请给我一个解决scheme。

无效使用rs.filter属性?

我使用adodb从excel连接到mysql 我在做: dpath = Range("B2").Text atime = Trim(Range("B3").Text) rtime = Trim(Range("B4").Text) lcalib = Trim(Range("B5").Text) aname = Trim(Range("B6").Text) rname = Trim(Range("B7").Text) bstate = Trim(Range("B8").Text) rs.Filter "datapath=dpath and analystname=aname and reportname=rname and batchstate" 但它给我一个错误,它是无效的使用filter属性 什么是使用filter属性的正确方法?

无法通过JScript更新TestComplete中的Excel工作表

我无法通过JScript更新TestComplete中的.xlsx工作表,因为我收到以下错误:“没有为一个或多个必需的参数给出值”。 connStr = Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\TestComplete 9 Projects\AWS-R Project Suite\TestData\TS_003.xlsx;Extended Properties="Excel 12.0;ReadOnly=False;HDR=Yes;" sSQLQuery = UPDATE [TC_PlaceVectorOrder_001$] SET [Result] = Pass where [No] = 1; objConn = Sys.OleObject("ADODB.Connection"); objConn.Open(connStr); recset = objConn.Execute(sSQLQuery); ///this line throws the exception objConn.Close();

在Excel VBA中使用ADO从Oracle数据库查询巨大表的内存问题

我需要使用VBA从Oracle数据库查询大数据表(2.000.000行和130列),并将其保存到文本文件中。 我正在使用的代码如下 Dim DBConnection As ADODB.connection Dim RecordSet As ADODB.RecordSet 'prepare string for connection Dim strConnection As String strConnection = "DRIVER=Oracle in OraClient11g_Home32;SERVER=" & database & " ;UID=" & username & ";PWD=" & password & ";DBQ=" & database & ";" Set DBConnection = New ADODB.connection 'open connection With DBConnection .CommandTimeout = False .ConnectionString = strConnection […]