无法在与请求SQL VBA对应的集合中找到项目

时间:2016-03-04 09:29:59

标签: excel vba ms-access

我正在尝试使用以下代码通过excel更新数据库:

Public Sub insertNew()

Sheets("Sheet1").Select


strDB = "i:\Profile\Desktop\DB\Database.accdb"


        Set cn = New ADODB.Connection

       cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strDB & ";" & "Jet OLEDB:Database Password=password;"


       Set rs = New ADODB.Recordset

      rs.Open "Project Manager", cn, adOpenKeyset, adLockOptimistic, adCmdTable

        r = 2 ' the start row in the worksheet

            Do While Len(Range("A" & r).Formula) > 0


                If Range("AD" & r) = "Yes" Then

                   With rs
                   .AddNew 

                   'These fields are on the spreadsheet, transfer will be made to the database
                    .Fields("ID") = Range("A" & r).Value
                    .Fields("Full Name") = Range("C" & r).Value
                    .Fields("SOEID") = Range("B" & r).Value
                    .Fields("SMT") = Range("D" & r).Value
                    .Fields("Manager") = Range("E" & r).Value


                    .Update 
                    End With
                End If

            r = r + 1 ' next row
        Loop
        rs.Close
        Set rs = Nothing

        cn.Close
End Sub

错误发生在以下行:

  

.Fields(" Full Name")= Range(" C"& r).Value

如果我对该行进行注释,则下面的行会给出相同的错误消息。所有这些列都在表Project Manager中,我已经检查过它们没有拼写错误等。

我之前从未见过这条错误消息所以不知道在哪里开始麻烦拍摄它,所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

我能够通过在项目经理周围放置[]来解决问题,所以这一行看起来像这样:

rs.Open "[Project Manager]", cn, adOpenKeyset, adLockOptimistic, adCmdTable