1
여기 내 문제입니다 : 네트워크 하드 드라이브에있는 .mdb 파일에서 데이터를 가져와야합니다. 나는에 연결하는 ADODB를 사용하지만,하고 나는 그것을 오류를 반환 만든 레코드 집합에서 필드 값을 반환 할 때 : 내가 노력 순간VBA. .mdb 파일에서 데이터를 가져옵니다. 개체가 닫힐 때 작업이 허용되지 않습니다.
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
cmd.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ".mdb"
cmd.CommandText = SQLRequst
cmd.CommandType = adCmdText
cmd.CommandTimeout = 900
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenForwardOnly, adLockReadOnly
Debug.Print rs.Fields(0)
Set cmd.ActiveConnection = Nothing
Set cmd = Nothing
Set rs.ActiveConnection = Nothing
: 여기
내 코드입니다 다양한 종류의 연결. thats는 내가 혼란스럽게 만드는 것은 .mdb 파일에 연결하고 RecordSet을 생성하지만 대부분의 값은 "개체가 닫힐 때 작업이 허용되지 않습니다."라고 말합니다. 문제는 내가 연결하고 레코드를 얻는 방법과 같다고 생각합니다. 때문에 SQL 데이터베이스에 연결하는 동일한 메서드를 사용하고 그것을 잘 작동합니다. 어떤 도움을Operation is not allowed when the object is closed
* 편집을 이해할 수있을 것이다
:로 SQLRequest = "SELECT * StackID는 = XXXXX tblStack로부터"
변경된 코드 이것 :
Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ".mdb"
rs.Open SQLRequst, conn, adOpenForwardOnly, adLockReadOnly
Debug.Print rs.Fields(0)
Set cmd.ActiveConnection = Nothing
Set cmd = Nothing
Set rs.ActiveConnection = Nothing
아직도 디버그하지 않는 인쇄 아무 것도 및 지역 창에서 해당 필드 (0) .Value 작업 개체를 닫을 때 허용되지 않습니다.
'SQLRequst'에는 무엇이 들어 있습니까? –
오류가 발생한 라인은 무엇입니까? – Gareth
디버그가 아무 것도 출력하지 않는다는 것이 미리 알려주는 것은 오류가 아닙니다. 그리고 Locals 윈도우를 볼 때 rs.Fields (0)의 값은 객체가 닫혀있을 때 Operation이 허용되지 않습니다. – gerain