Tag: adodb

在VBA中设置连接到访问数据库崩溃excel

这是我用来打开连接到Excel的访问数据库的代码。 它曾经工作了一年多。 Set dbname = New ADODB.Connection theconnection = "//xxx.sharepoint.com/sites" & Application.PathSeparator & TARGET_DB With dbname .Provider = "Microsoft.ACE.OLEDB.12.0" .Open theconnection End With 通过试用一个错误,我得出结论,这条线是造成这个问题。 Set dbname= New ADODB.Connection 自动更新我的电脑我的Excel版本2016 MSO(16.0.7726.1036)32位后,问题开始 请让我知道,如果你也遇到这个问题,如果你知道任何修复或解决方法。

VBA:Microsoft Access数据库引擎找不到对象(SQL查询工作表)

我正在尝试在Excel电子表格中针对表范围执行SQL select语句时,在rs.Open strSQL, cn行上收到以下错误消息: Microsoft Access数据库引擎找不到对象'Sheet1 $ A1:NC3'。 确保对象存在,并且正确拼写其名称和path名称。 如果“Sheet1 $ A1:NC3”不是本地对象,请检查您的networking连接或联系服务器pipe理员 对于类似的问题,我已经通过各种堆栈溢出侧栏build议,让谷歌有一个运行,但我还没有解决这个问题。 该对象是本地 – 检查 工作簿是当前打开的工作簿,将其保存到桌面 – 检查 networking连接正常 – 检查 意见 将SQLstring设置为"Select * from [Sheet1$];" 工作正常。 扩展,通过添加范围参考,错误回来,即"Select * from [Sheet1$A1:NC3];" 不起作用。 正如在评论中指出的,直到第四栏即[Sheet1$A1:IV3]是可以的; 列IW在前,错误信息又回来了。 注意 : Debug.Print确认 ListObjects("Table1").Range.Address as $A$1:$NC$3 rngAddress是[Sheet1$A1:NC3]; 任何人都可以请发现我做错了吗? 或者build议一个解决方法,所以我仍然可以使用这个范围(最好不要select整个工作表) 以下是完整的代码: Option Explicit Public Sub TestSQL() 'Tools > references > Microsoft […]

克隆现有logging集以优化logging集

我有一个logging集,其中包含需要导入到Excel文件中的所有数据。 有没有一种方法可以将我的实时logging集复制到打开Excel文件时创build的logging集中? 这是我正在尝试没有运气。 Dim connection : Set connection = Server.CreateObject("ADODB.Connection") connection.Open "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; Dbq=c:\MyExcel.xls;" & _ "DefaultDir=c:\; ReadOnly=False;" Dim excelRecordset : Set excelRecordset = Server.CreateObject("ADODB.Recordset") excelRecordset.Open "[SHEET1$]", connection, 2, 3 excelRecordset.AddNew Set excelRecordset = recordset.clone excelRecordset.Update excelRecordset.Close 谢谢。

ADODB.Connection与Excel访问数据库性能改进

我们创build了一个访问数据库,一个开发者创build了一个excel的函数来访问这个数据库中的数据。 连接通过ADDB.Connection完成。 该公式返回1个数字,它是Access数据库中的一些卷的总和,并考虑了一些参数。 当我们在一个单元格中运行公式时,它的工作原理是完美的,但是由于我们的报告包含多个具有此公式的单元格(大约160个单元格)。 报告的运行速度非常慢。 我们的Access专家之一检查数据库,他没有看到它的方式有任何的错误。 有人会有一个想法如何sorting呢? 我们应该在Excel中打勾来让它工作正常吗? 我们今天在MS Excel和Access 2003上工作(我知道我们已经过时了),但我有机会升级到Excel和Access 2007(这是一个进步;-)),它会有帮助吗? 这是我们在Excel中的vba代码的细节 'The function is called GetMarketData Function GetMarketData(Optional ProductLine As String, Optional country As String, Optional CountryGroup As String, Optional Market As String, Optional startMonth As Long, Optional endMonth As Long, Optional Brand As String, Optional Model As String, Optional Segment As String, […]

对象_connection的方法打开失败

我正试图连接到Excel中的SQL数据库。 它不断给我: Method Open of object _connection failed 错误消息,每当它到达Conn.Open 。 我以前从未使用过ADO,所以我不确定发生了什么问题。 以下是我的连接脚本。 Sub SQLCeConnect() Dim Conn As New ADODB.Connection Dim Query As New ADODB.Command Dim ConnStr As String Dim RecordSet As New ADODB.RecordSet Dim i As Integer 'the connection string ConnStr = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=X:\ADOTEST\MYDB.sdf;" 'Open ADO Connection Conn.ConnectionString = ConnStr Conn.Open Query.ActiveConnection = Conn Query.CommandText […]

VBA Excel ADODB计数字段

我相当新的整个ADODB的东西。 我写了一个代码,试图计算正在使用这个特定数据库的列。 但不知何故,我得到以下错误: 运行时错误“-2147217900(80040e14)”:语法错误 我已经尝试了几种方法来阅读这些列,但是我无法完成这个工作。 有人可以给我一个线索如何解决这个问题吗? 提前致谢 :) Public Function GetParameterDbfTotalColumn() As Long Dim sConnectionString As String Dim mdbConn As ADODB.Connection Dim mrst As ADODB.Recordset Dim pPath As String Dim sTable As String GetParameterDbfTotalColumn = -1 pPath = "C:\ProgramData\Citect\CitectSCADA 7.20\User\Huisman V4\parameters.dbf" Set mdbConn = New ADODB.Connection sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & pPath & ";Extended Properties=""DBASE […]

使用VBA中的ADODB查询带空格的图纸名称

我试图用adodb查询excel文件。 但有些文件具有非标准的表格/列名称。 strQry = "select * from [ sheet1$A1:A50]" 我得到一个错误,说“无效的名称包围”。 如何在名称中有多余空格的工作表上运行查询? 这些是来自客户端的原始文件,所以我不想更改名称或任何东西。 另外,我还有关于该列的另一个问题。 strQry2 = "select [column\rA] from [sheet1$E1:E122]" “\ r”是换行符。 我得到一个错误“给一个或多个必需的参数没有给定值”。 有关如何处理这些问题的build议? 更新: Sheet 1工作正常,但我有工作表被命名为Sheet1 ( Sheet1 之前的额外空间) 。 某些列标题在列名称中包含换行/回车,如“column”&vbcrlf&“name”。 有没有办法来查询这些?

Excel VBA到:APPEND只修改logging从Excel到Access

我有一个Excel电子表格,通过ADODB连接从数据库下载最新的logging集。 大部分最新的logging都基于importdate/时间。 一旦信息被加载到Excel电子表格中,我希望分析员/最终用户更新任何他们认为合适的logging。 当分析人员点击提交button时,我只想将修改的logging添加到位于共享驱动器上的MS Access 2007数据库中的同一个表中。 数据库将自动为每个logging添加一个导入date/时间。 我的问题:我只想APPEND新修改的logging 。 因此,我将有什么更新和什么时候的历史logging。 目前我正在将整个logging集附加到MS Access 2007,同时包括今天的date/时间戳记,这导致具有不同时间戳记的冗余logging。 下面的代码代表我目前的过程。 请注意我有公共variables。 Private Sub db_CodeAmendment_Upload Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim i, j, rw, co As Long Dim sh As Worksheet Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset Sheets("sCodeMatrix").Visible = True ThisWorkbook.Worksheets("sCodeMatrix").AutoFilter.Sort.SortFields.Clear For Each sh In […]

是否有可能知道在Excel VBA中打开了多less个Oracle连接?

我有一个Excelmacros。 macros连接到Oracle来获取数据。 这个提取可能或不可以打开多个连接(取决于用户如何在macros内编码)。 有没有可能知道在Excel VBA中打开的Oracle连接? 或者我更改我的问题:是否有可能知道从VBA脚本中的Excelmacros中打开了多less个连接? 连接代码: Public Const CONNECT_STRING = "Provider=MSDAORA.1;Password=XXXX;User ID=XXXXX;Data Source=XXXXX;Persist Security Info=True" Dim conn As ADODB.Connection conn.Open CONNECT_STRING MsgBox Application.ActiveWorkbook.Connections.Count 计数仍然是0

logging集计数总是返回-1

我的代码是这样的 rst.CursorLocation = adUseClient Set rst = MySQLConn.Execute("SELECT * FROM " & viewName & ";") MsgBox rst.RecordCount 我想知道我的logging集中的logging数,但logging数总是返回-1。 我将如何解决这个问题?