Excel 运行时错误3705,对象打开时不允许操作
添加行后,我收到错误3705Excel 运行时错误3705,对象打开时不允许操作,excel,vba,Excel,Vba,添加行后,我收到错误3705 [MTSU_Data].[Tool no]=" CInt(WsInput.Range("J" & c).value) & ";" .ActiveConnection = conn 发生错误的突出显示行位于 .ActiveConnection = conn 完整代码 Dim conn As ADODB.Connection Dim Accdata As ADODB.Recordset Dim Accfield As ADODB.Field Di
[MTSU_Data].[Tool no]=" CInt(WsInput.Range("J" & c).value) & ";"
.ActiveConnection = conn
发生错误的突出显示行位于
.ActiveConnection = conn
完整代码
Dim conn As ADODB.Connection
Dim Accdata As ADODB.Recordset
Dim Accfield As ADODB.Field
Dim wsQueryR As Worksheet, wsFinal As Worksheet
Set wsFinal = Worksheets("Final")
Set conn = New ADODB.Connection
Set Accdata = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\wongki7\Desktop\MTSU Db.accdb;"
conn.Open
'G:\BusUnits\MTSU\MTSU\Mold Tool Set Up\MTSU Reports\Shift Reports\MTSU Db.accdb;"
' On Error GoTo CloseConnection
For c = 2 To WsInput.Range("J" & Rows.Count).End(xlUp).Row
With Accdata
.ActiveConnection = conn
.Source = "SELECT * FROM [MTSU_Data] Where [MTSU_Data].[Date]>= #" _
& Format(CDate(WsInput.Range("A2").value), "mm/dd/yyyy") & " # AND [MTSU_Data].[Date]<= #" _
& Format(CDate(WsInput.Range("A3").value), "mm/dd/yyyy") & " # AND [MTSU_Data].[LT] = " _
& CInt(WsInput.Range("M2").value) & " AND [MTSU_Data].[Tool no]=" _
& CInt(WsInput.Range("J" & c).value) & ";"
.LockType = adLockReadOnly
'.CursorType = adOpenForwardOnly
.Open
End With
Next
Worksheets("Result").Select
Sheets("Result").Range("a2").CopyFromRecordset Accdata
Accdata.Close
conn.Close
感谢您的帮助。谢谢,祝你有个愉快的一天。你不能试着移动线路吗
[MTSU_Data].[Tool no]=" CInt(WsInput.Range("J" & c).value) & ";"
.ActiveConnection = conn
到圈外。显然完全符合条件
Accdata.ActiveConnection = conn
在我看来,您正在尝试为每个迭代建立连接,我认为这只需要一次。。。可能吧。为了最适合您的代码,我尝试以下方法:
Sub SomeRoutine()
Dim conn As ADODB.Connection
Dim Accdata As ADODB.Recordset
Dim Accfield As ADODB.Field
Dim wsQueryR As Worksheet, wsFinal As Worksheet
Dim c As Long
Set wsFinal = Worksheets("Final")
Set conn = New ADODB.Connection
Set Accdata = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\wongki7\Desktop\MTSU Db.accdb;"
conn.Open
Accdata.ActiveConnection = conn
Accdata.LockType = adLockReadOnly
For c = 2 To WsInput.Range("J" & Rows.Count).End(xlUp).Row
Call Accdata.Open("SELECT * FROM BLah Blah")
Sheets("Result").Range("a2").CopyFromRecordset Accdata
Accdata.Close
Next
conn.Close
End Sub
您可以查看构建SQL请求的方式,以构建一个查询,一次获取数据,并使用CopyFromRecordset将数据粘贴到Excel。。。。但那是另一个问题。我以前犯过很多次错误。指定对象时,需要使用“设置”。换行
Set .ActiveConnection = conn
.Source和.LockType是标量属性,因此它们不需要设置,但.Activeconnection需要设置。错误现在替换为error 424 Object required。突出显示的行是.Source=从[MTSU_数据]中选择*,其中[MTSU_数据].[Date]>=\uU&FormatCDateWsInput.RangeA2.value,mm/dd/yyyy&和[MTSU_数据].[Date]