Microsoft.Ass.OLEDB.12.0 Aktuelle Recordset unterstützt keine Aktualisierung-Fehler empfangen, wenn Sie versuchen zu aktualisieren, Zugriff

Ich habe eine ASP Seite, wo ein Benutzer laden Sie eine excel-Datei. Nachdem die Datei erfolgreich hochgeladen ist, will ich die Zeilen, die in der REGION Registerkarte und legen Sie Sie in eine MS-Access-2007-Tabelle. Unten ist der code, den ich verwendet, und ich bin immer diese Fehlermeldung. Kann ich den recordset aktualisieren mit dem Microsoft.Ass.OLEB.12.0 Anbieter? Gibt es einen besseren Weg, dies zu tun?
ADODB.Recordset-Fehler '800a0cb3'

Aktuelle Recordset unterstützt keine Aktualisierung. Dies kann eine Einschränkung des providers oder des gewählten locktypes.

Set cnnExcel = Server.CreateObject("ADODB.Connection")
cnnExcel.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & strExcelFile & ";" & _
                    "Extended Properties=" &  Chr(34) & "Excel 12.0 Xml;HDR=Yes;IMEX=1" & Chr(34) & ";" 
Response.Write "Excel connection opened<BR>"

' Load ADO Recordset with Excel Data
Set rstExcel = Server.CreateObject("ADODB.Recordset")
rstExcel.Open "Select * from [REGION$]", cnnExcel, adOpenStatic 
Response.Write "Excel Recordset loaded<BR>"

' Open Access Connection
Set cnnAccess = Server.CreateObject("ADODB.Connection")
cnnAccess.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strAccessFile & ";Persist Security Info=False;" 
Response.Write "Access connection opened<BR>"
Const adOpenStatic = 1
Const adLockOptimistic = 3
Const adCmdText = &H0001
' Load ADO Recordset with Access Data
Set rstAccess = Server.CreateObject("ADODB.Recordset")
rstAccess.Open "REGION", cnnAccess, adOpenStatic, adLockOptimistic, adCmdTable
Response.Write "Access Recordset loaded<BR>"

' Synchronize Recordsets and Batch Update
Do Until rstExcel.EOF

        ' .AddNew
        For each field in rstExcel.Fields
            If field.Name = "% Over/Under" Then
                rstAccess.AddNew field.Name,0
            Else
                rstAccess.AddNew field.Name,field.Value
            End If
        Next

    rstExcel.MoveNext
Loop
rstAccess.UpdateBatch
  • Ich habe gerade bemerkt, dass man "server". Haben Sie überprüft, die Berechtigungen auf den Ordner?
  • Auch ist es Ihre Absicht, dass Sie sollten einen neuen Datensatz für jedes Feld? Wenn nicht, müssen Sie eine AddNew -, Feld-Schleife und eine update. Was immer Sie auch tun, loszuwerden, BatchUpdate. Ich glaube nicht, dass Sie tut, was Sie denken.
InformationsquelleAutor shresthaal | 2012-07-25
Schreibe einen Kommentar