当前位置: 首页 > 知识库问答 >
问题:

Excel2010到自身的ACE连接字符串

满雨石
2023-03-14

我试图在VBA中使用SQL来更新Excel中现有表中的数据(与VBA代码相同的文件)。这是用SQL查询编写的,更新的目的是在推出后不久将源数据移动到数据库中,但有原因不是现在。我不断得到“操作必须使用可更新查询”的错误。一些源在扩展属性中显示只读,而一些不显示只读;两人都试过。StatusData是Excel文件中的命名范围。使用命名范围的SELECT语句在使用以下连接字符串时工作正常:

DBFullName=thisworkbook.path&“\”&thisworkbook.name

Cnct=“provider=microsoft.ace.oledb.12.0;data source='”&DBFullName&';“&_“扩展属性='Excel 12.0;HDR=yes;IMEX=1';”

查询连接的更改包括使用“Excel12.0宏”扩展属性和Readonly=0,这些更改是递增的。断开的代码如下:

Cnct = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & DBFullName & "';" & _
  "Extended Properties='Excel 12.0 Macro;ReadOnly=0;HDR=Yes;IMEX=1';"
Set Cn = New ADODB.Connection
Cn.Open ConnectionString:=Cnct
strSQL = "UPDATE StatusData SET Notes='ttt' WHERE [Program Category]='something' AND [Program Name]='something' AND [LN]='1' AND [SN]='101';"
Cn.Execute strSQL, RecordsAffected, adExecuteNoRecords

共有1个答案

尉迟龙光
2023-03-14

我在使用IMEX时遇到了问题,所以最后我停止使用它来实现这个目的,这个连接字符串从来没有给我使用ADO/ACE连接回工作簿(通常用于SQL GroupBy)带来问题,但在建立连接之前,您可能需要对数据进行一些调节(我将整个表放入一个数组中,并根据需要遍历字段进行更改,然后转储回工作表),这很容易,因为它已经在同一个工作簿中了:

Dim conn    As Object
Dim sPath   As String

sPath = "C:\offlinestorage\temp1.xlsx"
Set conn = CreateObject("ADODB.Connection")
With conn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = Format("Data Source=" & sPath & ";Extended Properties='Excel 12.0 XML;HDR=Yes';")
    .Open
End With
 类似资料:
  • 主要内容:Oracle自连接简介,Oracle自连接示例在本教程中,您将学习如何使用Oracle自身连接将表连接到自身。 Oracle自连接简介 自连接是连接表与自身的连接。自连接对比较表中的行或查询分层数据非常有用。 自连接使用其他连接,如内连接和左连接。 另外,它使用表别名在同一查询中为表提供不同的名称。 请注意,在不使用表别名的情况下,在查询中多次引用同一个表会导致错误。 以下说明了表如何与自身连接: 请注意,除了之外,还可以在上面的语句中使用L

  • 我有一个来自ASP.NET的连接字符串,我必须在我的Java应用程序中使用它,然而,我似乎无法弄清楚它为什么不工作。 这是我得到的错误:cannot ;建立 ;连接 ;到 ;jdbc:sqlserver://localhost:1433;databaseName=mydatabase;“ 使用 ;com.microsoft.sqlserver.jdbc.sqlserverdriver ;( ;连接

  • 我在创建带有参数的@Bean时遇到问题,这运行得很好,但在intelliJ中,它给出的错误无法自动连线。找不到“String”类型的bean。 我要做什么?我正在尝试创建具有原型作用域的bean,在IntelliJ“无法自动连线。未找到‘String’类型的bean”中出现此错误有谁能帮我解决这个问题吗 这是原型测试的类

  • 问题内容: 我最近将数据库从sql server 2005迁移到Windows Server 2008上的2008。客户端从XP计算机连接正常,SQL Management Studio 2008也是如此。我还测试了使用LINQPad的远程连接,该连接工作正常。 但是在我的VB6应用程序上,连接字符串似乎给我带来了问题。有什么想法我做错了吗? 提前致谢。 更新:这是我使用test.UL文件生成的字