0
我工作的這個代碼,但它給了我一個錯誤說thatError類型: ADODB.Recordset(0x800A0E79) 不允許操作時該對象是打開的。我從來沒有遇到過這個錯誤。我試圖做的是當一個新文件被摻雜在特定文件夾中時更新訪問文件。我用excel做了同樣的事情,這是完美的工作,當我添加訪問部分,它給了我錯誤。這裏是我的代碼,如果我能得到一些幫助,這很好。錯誤類型:ADODB.Recordset(0x800A0E79)操作時,不允許對象處於打開
<!--#include file="header.inc"-->
<%
file = Request.querystring("file")
file = "C:\Reports\" & file
log("UPDATE UTILITY RUN---------" & file)
'Initialize Connection to report
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
Set objConnection = CreateObject("ADODB.Connection")
Set rows = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & file & ";" & _
"Extended Properties=" & Chr(34) & "Excel 12.0 Xml;HDR=No;IMEX=1" & Chr(34) & ";"
'Initlialize Connection to Data
Set objConnection2 = CreateObject("ADODB.Connection")
Set rows2 = CreateObject("ADODB.Recordset")
objConnection2.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Server.MapPath("data.xlsx") & ";" & _
"Extended Properties=" & Chr(34) & "Excel 12.0 Xml;HDR=Yes;IMEX=0" & Chr(34) & ";"
'initialize Connection3 to Data
Set objConnection3 = CreateObject("ADODB.Connection")
Set rows3 = CreateObject("ADODB.Recordset")
objConnection3.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
Server.MapPath("tracker_dev_nik.accdb") & ";Persist Security Info=False;"
'Query the spreadsheet
rows.Open "Select * FROM [WC-Stages$]", _
objConnection, adOpenStatic, adLockOptimistic, adCmdText
'Print off the row's data
DIM JUR
DIM WC
DIM WC_NAME
DIM PRIORITY
DIM REP
DIM DELIVER
DIM ACCEPT
DIM REJECT
DIM REDELIVER
DIM STATUS
DIM SDATE
DIM DATA_STATUS
DIM DATA_STATUS_2
DIM DATA_SDATE
DIM DATA_SDATE_2
Do Until rows.EOF
JUR = rows.Fields("F3").Value
WC = rows.Fields("F4").Value
WC_NAME = rows.Fields("F5").Value
PRIORITY = rows.Fields("F7").Value
REP = rows.Fields("F23").Value
DELIVER = rows.Fields("F22").Value
ACCEPT = rows.Fields("F24").Value
REJECT = rows.Fields("F25").Value
REDELIVER = rows.Fields("F26").Value
STATUS = ""
SDATE = ""
DATA_STATUS = ""
DATA_SDATE = ""
IF NOT (JUR = "" OR JUR = "Jur") THEN 'Ignore invalid rows (first two and
last three)
If IsNull(DELIVER) THEN
STATUS = "undelivered"
SDATE = "1/1/2000"
ELSE
IF IsNull(ACCEPT) THEN
IF IsNull(REJECT) THEN
STATUS = "delivered"
SDATE = DELIVER
ELSE
IF IsNull(REDELIVER) THEN
STATUS = "rejected"
SDATE = REJECT
ELSE
STATUS = "redelivered"
SDATE = REDELIVER
END IF
END IF
ELSE
STATUS = "accepted"
SDATE = ACCEPT
END IF
END IF
query = "SELECT * FROM [Sheet1$] WHERE JUR = '" & JUR & "' AND WC = " & WC
rows2.Open query, _
objConnection2, adOpenStatic, adLockOptimistic, adCmdText
'For access database connection
query = "SELECT * FROM [Sheet1] WHERE JUR = '" & JUR & "' AND WC = " & WC
rows3.Open query, _
objConnection3, adOpenStatic, adLockOptimistic, adCmdText
' DATA_STATUS = rows2.Fields("Status").Value
' DATA_SDATE = rows2.Fields("SDate").Value
DATA_STATUS = rows3.Fields("Status").Value
DATA_SDATE= rows3.Fields("SDate").Value
if dateafter(SDATE, DATA_SDATE) AND STATUS <> DATA_STATUS then
'Need to update the data with the new value
log("UPDATE: " & jur & ":" & wc & "has been changed to " & STATUS)
query = "UPDATE [Sheet1] SET [STATUS] = '" & STATUS & "', [SDATE] =
'" & SDATE & "' WHERE [JUR] = '" & JUR & "' AND [WC] = " & WC
response.write(query)
objConnection3.execute(query)
END IF
rows2.close
END IF
rows.MoveNext
Loop
log("UPDATE COMPLETE")
%>
<!--#include file="footer.inc"-->
感謝 聶
我不能肯定地說,當你接近rows2,你離開開放rows3 – Steve 2012-07-16 14:19:56
我會說你有沒有答案@Steve。 – Fionnuala 2012-07-16 14:33:06