- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要更新 Excel VBA 中的记录集。我从 CSV 中提取数据并使用文本驱动程序连接到该文件。这是我与文件、记录集和更新代码的连接。
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
con.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:\Users\jasons\Documents\sl;Extensions=csv;"
rs.Open "SELECT *, 0 As item FROM Pct.csv where [Sku No] in ('123455','123456')", con, adOpenDynamic, adLockOptimistic
rs.MoveFirst
Do Until rs.EOF
rs.Fields(0) = 2
rs.MoveNext
Loop
但我在 rs.MoveNext
行不断收到以下错误消息。
-2147467259-[Microsoft][ODBC Text Driver] Syntax error (missing operator) in query expression '(item=Pa_RaM001 AND Style Code=Pa_RaM002 AND Sku No=Pa_RaM003'.
当我删除循环并将第一条记录更新为
rs.MoveFirst
rs.Fields(0) = 2
然后就可以了。我在互联网上查找示例,但我看不出我做错了什么。如果有任何帮助,我将不胜感激。
最佳答案
您可以使用以下方法通过 ADODB 生成 CSV 文件。更新 CSV 文件绝对是一个非常糟糕的主意。 ALTER TABLE 在我看来也是不可能的。因此该方法将使用新字段创建一个新的临时表。然后从旧表中复制数据并设置新字段的数据。最后将临时表交换到 CSV 文件中。
Sub ADODB_CSV()
Dim con As New ADODB.Connection
con.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:\Users\jasons\Documents\sl;Extensions=csv;"
On Error Resume Next
con.Execute "DROP TABLE temp.csv"
On Error GoTo 0
con.Execute "CREATE TABLE temp.csv (item integer, [Style Code] text, [Sku No] text)"
con.Execute "INSERT INTO temp.csv (item, [Style Code], [Sku No]) SELECT 0, [Style Code], [Sku No] FROM Pct.csv WHERE [Sku No] NOT IN ('123455','123456')"
con.Execute "INSERT INTO temp.csv (item, [Style Code], [Sku No]) SELECT 2, [Style Code], [Sku No] FROM Pct.csv WHERE [Sku No] IN ('123455','123456')"
con.Execute "DROP TABLE Pct.csv"
con.Execute "CREATE TABLE Pct.csv (item integer, [Style Code] text, [Sku No] text)"
con.Execute "INSERT INTO Pct.csv SELECT * FROM temp.csv"
con.Execute "DROP TABLE temp.csv"
con.Close
End Sub
关于sql - 使用 ADODB Recordset 更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30500455/
使用 VBA 连接 Access DB 时遇到一个奇怪的错误。 VBA 代码如下所示: Sub DBC() Dim cn As ADODB.Connection Dim rs As A
我有一些现有的代码,使用不同的参数重复查询 SQL 数据库,我认为如果我将其更改为在开始时选择一大块数据到 ADODB.Recordset 中,然后在循环查询此记录集而不是数据库本身。 一个额外的警告
我用下面的代码填充了一个数据表—— OleDbDataAdapter oleDA = new OleDbDataAdapter(); DataTable dt = new DataTable(); o
... 或从 QueryTables 中提取记录。 最佳答案 试试这个排序: SQLDatabase_VBA.bas将来自 ADODB 或系统的 SQL 数据库与 Excel 中的 VBA 连接 sc
看,我遇到了一个问题,它开始让我有些头痛,因为我找啊找,但仍然不走运。 我必须从 C# 执行 DLL 的方法,这个 DLL 是 4 年前在 VB 6.0 中创建的,并且在 COM 中注册。它使用 AD
我一直在 Excel 中使用 ADODB 连接,以便连接到 MySql 数据库并检索值。 我的代码的本质如下: Public Function ODPH(B0 As Range, sqlstr As
Function filenum(filename,i) Dim st,s Set&nb
翻了半天MSDN后找到的,|后边是别名 复制代码代码如下: ANSI_X3.4-1968|iso-8859-1 ANSI_X3.4-1986|iso-8859-1&nb
1. 前言 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的
在 Excel 2010 中,我正在编写一个将大文本文件加载到记录集中的 vb 应用程序。 文本文件是一个日志文件,用空格分隔,并且没有任何列标题的第一行。 我可以使用适当的 schema.ini 文
我想弄清楚如何在 VBA excel 中使用 ADODB 进行多行插入。 我的问题似乎是我无法找出用于这个简单任务的正确语法,即使在搜索之后我仍然不知道它为什么不起作用。 使用语句进行单次插入没有问题
我试图从包含 80,000 多行的工作表中检索数据并将这些值打印到工作表中,但是当我创建记录集并查看其记录计数时,它只包含 16,492 条记录。 我是 ADODB 连接的新手,所以我对问题所在感到困
我在Delphi 7中使用ADODB,对于UPDATE查询,我使用TADOConnection执行过程“ recordsAffected”变量获取了修改后的记录数。 像这样 : MyConnexio
JavaScript ADODBE 连接如何在查询中放置它们或它们之间。需要帮助: rs.Open("update customer set Name='" + txtname + "',F_Name
我正在使用 adodb 和 php。我需要将 html 插入数据库,并且需要知道在将其插入数据库之前转义引号的最佳方法?我尝试使用 pg_escape_string() 但它似乎仍然没有插入。 执行此
我在 Excel 中有一个表,该表通过与 Access 数据库的连接进行填充。我正在尝试编写一个宏,允许您从此表中删除各个行。我使用 ADODB 连接将删除命令传递给 Access,效果很好。但是,在
我必须在我的 Delphi 应用程序中创建 dbf 文件。 对于本例,我使用 ADODB。 连接字符串: const ConnStringDBF = 'Driver={Microsoft dB
所以我是 Visual Basic 的新手,继承了我现在需要处理的 VB6 代码。现在,我正在尝试使用 ADODB.RecordSet 更新 SQL 数据库。我有一个 Select SQL 语句,可以
在 Excel 中,我使用 ADODB 连接来构建记录集,从其自己的工作簿中的工作表中获取数据,如下所示: Public Sub test() Dim cnn As New ADODB.Con
我想知道为什么当我把 sql ADODB在一个函数中查询它会产生以下错误: Fatal error: Call to a member function Execute() on a non-obje
我是一名优秀的程序员,十分优秀!