DAO-RecordSet-Fehler 3251 bei der Verwendung von FindFirst
Ich bin immer "Laufzeitfehler '3251': der Vorgang wird nicht unterstützt für diese Art von Objekt." wenn ich versuche, mit dem "FindFirst" auf meinem DAO-RecordSet. Kann mir jemand erklären was ich falsch mache für diese nicht die Suche nach dem Datensatz. Die variable, die ich verwende, ist die Rücksendung der korrekte Wert für die Suche ein.
Private Sub ctrSend_Click()
Dim intI As Integer
Dim lst As ListBox
Dim varItem As Variant
Dim rst As DAO.Recordset
Dim rst2 As DAO.Recordset
Dim qtySum As Variant
Dim qtyDiff As Variant
Dim rowMax As Variant
Dim rowUpdate As Variant
Set lst = Me![lstShipping]
Set rst = CurrentDb.OpenRecordset("ShipInv", dbOpenTable)
Set rst2 = CurrentDb.OpenRecordset("Storage", dbOpenTable)
qtySum = 0
rowMax = 0
With lst
If .ItemsSelected.count = 0 Then Exit Sub
For Each varItem In .ItemsSelected
qtySum = qtySum + .Column(3, varItem)
Next
If Me.[ctrQtyProd] = qtySum Then
MsgBox "Qty Selected EQUALS Qty Being Shipped.", vbOKOnly, "Confirmation Message"
ElseIf Me.[ctrQtyProd] > qtySum Then
MsgBox "Qty Selected LESS THAN Qty Being Shipped, please select more Inventory.", vbOKOnly, "Confirmation Message"
Else
qtyDiff = qtySum - Me.[ctrQtyProd]
rowMax = lst.Column(3, lst.ItemsSelected.count)
rowUpdate = rowMax - qtyDiff
rst2.FindFirst "[BIN] = '" & lst.Column(0, lst.ItemsSelected.count) & "'"
rst2![QtyProd] = lst.Column(3, lst.ItemsSelected.count)
rst2.Update
rst2.Close
MsgBox "Storage Successfully Updated.", vbOKOnly, "Confirmation Message"
End If
End With
With lst
For Each varItem In .ItemsSelected
rst.AddNew
rst!Order = Me.[ctrSOrder]
rst!EntDate = Date
rst!ShipDate = Me.[ctrSDate]
rst!BIN = .Column(0, varItem)
rst!SKU = .Column(1, varItem)
rst!Lot = .Column(2, varItem)
rst!QtyProd = rowUpdate
rst.Update
Next
End With
rst.Close
Set rst = Nothing
Set rst2 = Nothing
MsgBox "Shipping List Successfully Updated.", vbOKOnly, "Confirmation Message"
End Sub
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versuchen, öffnen Sie das recordset als dbOpenDynaset (Standard, ohne die enum-der open-Anweisung angegeben) oder dbOpenSnapshot statt? Die Dokumentation auf der Microsoft MSDN-Website gibt es unternimmt, diese zwei recordsets.
Microsoft MSDN-Artikel über das Recordset.FindFirst
.OpenRecordset("TableName", dbOpenDynaset)