ユーザーが Excel ファイルをアップロードする ASP ページがあります。ファイルが正常にアップロードされたら、REGION タブの行を取得して、MS Access 2007 テーブルに挿入します。以下は私が使用したコードで、このエラーが発生しています。Microsoft.ACE.OLEB.12.0 プロバイダーでレコードセットの更新を使用できますか? これを行うより良い方法はありますか?ADODB.Recordset エラー '800a0cb3'
現在の Recordset は更新をサポートしていません。これは、プロバイダーまたは選択したロックタイプの制限である可能性があります。
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