首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Cells VBA参考问题

.Cells VBA参考问题
EN

Stack Overflow用户
提问于 2011-12-02 06:59:25
回答 2查看 554关注 0票数 0

我在下面有一个VBA,它被设计成循环遍历每个WS并插入每个数据集的前4行。

这在with中可以很好地工作,但这只允许我指定一个表,而不是遍历所有表。我去掉了with,得到了“无效或不合格的引用”。在这之后我添加了ActiveSheet。添加到“Cells”方法中。

现在我得到了下面的错误:

"ODBC驱动程序不支持请求的属性“

现在如何确定.Cells的资格?或者还有其他选择吗?我使用的是excel 2010和mysql。

代码语言:javascript
复制
Public Function InsertData()

Dim rs As ADODB.Recordset
Dim oConn As ADODB.Connection
Dim WS As Worksheet
Dim strsql As String

Set rs = New ADODB.Recordset
  Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
    "SERVER=server.host.com;" & _
    "DATABASE=datatime;" & _
    "USER=boulders;" & _
    "PASSWORD=rocks;" & _
    "Option=3"


For Each WS In ActiveWorkbook.Worksheets

    For rowcursor = 4 To 8
        strsql = "INSERT INTO workflow_metrics (id, code) " & _
            "VALUES (" & (ActiveSheet.Cells(rowcursor, 1)) & "," & _
            "'" & (ActiveSheet.Cells(rowcursor, 2)) & "')"

       rs.Open strsql, oConn, adOpenDynamic, adLockOptimistic

    Next
Next WS


End Function
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-02 07:19:56

我认为你想要:

代码语言:javascript
复制
Param1.Value = WS.Cells(rowcursor, 1)

等。

票数 5
EN

Stack Overflow用户

发布于 2011-12-02 07:05:14

现在如何鉴定.Cells?或者还有其他选择吗?

这不是问题所在。问题是您试图使用数据修改查询(INSERT)打开记录集(rs.open)。

对于DML,您需要使用ADODB.Command.Execute

此外,如果您无法控制电子表格中的值,那么您将面临SQL注入攻击。您应该改用参数化查询。

代码语言:javascript
复制
 Dim Cmd As ADODB.Command
 Set Cmd = New ADODB.Command
 Cmd.ActiveConnection = oConn
 Cmd.CommandText = "INSERT INTO workflow_metrics (id, code) VALUES (?,?)"

 Set Param1 = Cmd.CreateParameter(, adInteger, adParamInput, 5)
 Set Param2 = Cmd.CreateParameter(, adInteger, adParamInput, 5)


 For Each WS In ActiveWorkbook.Worksheets


     For rowcursor = 4 To 8
         Param1.Value = WS.Cells(rowcursor, 1) 'As Doug Glancy this should be WS not ActiveSheet'
         Param2.Value = WS.Cells(rowcursor, 2)
         cmd1.Execute
     Next
 Next  WS
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8349548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档