지난 몇 년 동안 많은 문제에 대한 솔루 션을 찾았지만 처음 질문을했습니다.지정된 인덱스를 사용하는 MS Access 2007 DAO 오픈 레코드
저는 답을 찾을 수없는 좌절스러운 문제가 있습니다. 테이블에 정의 된대로 특정 인덱스 이름을 사용하여 다이너 셋 DAO 레코드 집합으로 연 링크 된 테이블을 통해 순차적으로 읽기 전에 초기 읽기를 수행하려고합니다.
내 코드는 .index 행에서 '작업이 지원되지 않습니다 ...'오류 3251을 반환합니다. 의심의 여지가 명백한 솔루션입니다 (당신은 명백한 대답이 될 SQL 쿼리를 열지 않으려 고합니다.)
Public Function IOrdCustomerStock(CustomerID As Long, ProductID As Long, KeepRsOpen As Boolean, Optional UseIndexName As String) As Boolean
Set zcls_CS.CS_rs = CurrentDb.OpenRecordset(Name:=CS_TableName, Type:=RecordsetTypeEnum.dbOpenDynaset)
With zcls_CS.CS_rs
If Not IsMissing(UseIndexName) Then
.Index = UseIndexName
End If
.FindFirst "CS_CustomerID = " & CustomerID & " and CS_ProductID = " & ProductID
If .NoMatch Then
zcls_CS.CS_EOF = True
Else
zcls_CS.CS_EOF = False
zcls_CS.CS_ID = .Fields("[ID]")
zcls_CS.CS_CustomerID = .Fields("[CS_CustomerID]")
zcls_CS.CS_PhysSalesStock = .Fields("[CS_PhysSalesStock]")
zcls_CS.CS_ProductID = .Fields("[CS_ProductID]")
zcls_CS.CS_PurQuantityRecvd = .Fields("[CS_PurQuantityRecvd]")
zcls_CS.CS_PurUnitDesc = .Fields("[CS_PurUnitDesc]")
zcls_CS.CS_PurUnitFactor = .Fields("[CS_PurUnitFactor]")
zcls_CS.CS_SaleQuantityAlloc = .Fields("[CS_SaleQuantityAlloc]")
zcls_CS.CS_SaleQuantityOrdered = .Fields("[CS_SaleQuantityOrdered]")
zcls_CS.CS_SaleUnitDesc = .Fields("[CS_SaleUnitDesc]")
zcls_CS.CS_SaleUnitFactor = .Fields("[CS_SaleUnitFactor]")
End If
End With
If Not KeepRsOpen Then
Call IOclCustomerStock
End If
IOrdCustomerStock = Not zcls_CS.CS_EOF
End Function
추신 : 난 그냥 개념의 내 작은 증거에 일반적인 오류 처리를 추가 할 필요가 레코드 세트 유형을 Type : = RecordsetTypeEnum.dbOpenTable로 변경하면 openrecordset 행에 잘못된 연산이 발생하고 recordert 정의를 dao.recordset에서 일반 레코드 세트로 변경하는 경우에도 마찬가지입니다. – user7425513
P.P.S. 로컬로 정의 된 레코드 세트를 사용하면 동일한 오류가 발생합니다 (클래스의 요소로 정의 된 레코드 세트를 사용하는 모든 probem을 제거하기 위해). 기본 문제는 레코드 집합의 인덱스 속성을 사용할 수 있도록 테이블 형식으로 레코드 집합을 열어야하지만 분명히 뭔가를하고 있다는 것입니다. – user7425513
오타의 사과 ... 내 주 컴퓨터가 풀이므로 내 백업 컴퓨터의 프랑스어 키보드로 고민 중입니다 ... – user7425513