0
這是我第一次問一個問題,雖然多年來我找到了許多我的兄弟的解決方案。使用指定索引的MS Access 2007 DAO打開記錄集
我有一個令人沮喪的問題,我無法找到答案。我想通過使用表中定義的特定索引名稱作爲動態集DAO記錄集打開的鏈接表,按順序執行初始讀取。
我的代碼在.index行中返回錯誤3251'operation is not supported ...'。毫無疑問,有一個明顯的解決方案(請注意,我試圖避免打開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行上得到一個無效操作,並且如果我將記錄定義從dao.recordset更改爲普通記錄集。 – user7425513
P.P.S.如果我使用本地定義的記錄集(只是爲了消除使用定義爲類的元素的記錄集的任何探針),我會得到相同的錯誤。我認爲最基本的問題是我需要打開記錄集作爲表類型,以使我能夠使用記錄集的索引屬性,但我顯然做了一些事情(我期望非常明顯)是錯誤的。 – user7425513
對於錯字的道歉...我在我的備份計算機上用法語鍵盤掙扎,因爲我的主機器是游泳池...... – user7425513