MS ACCESS VBA记录集搜索条件类型不匹配

用户2921017

我需要有关记录集搜索条件的帮助,该条件给了我一个类型不匹配错误。下面的代码部分:

'Set search criteria from SO recordset

sCriteria = "Item = " & rsSO!Item & " And Expire >= " & rsSO!Expire

rsSO!Item is Text 

rsSO!Expire is Number

我尝试使用Variant而不是String。那没起效

我不能在搜索条件字符串中使用> =吗?

我试图遍历销售订单记录集,并使用商品代码和过期编号来查找库存记录集中的所有可用库存,并将其放置在结果表中,以将其分配给销售订单。

迷上了搜索条件类型不匹配。

Public Function UpdateInventoryIntl()
    Dim rsInv As DAO.Recordset, rsSO As DAO.Recordset, rsItems As DAO.Recordset, db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim sCriteria As String
    Dim AllocationQty As Long, SaleOrderRemainder As Long
    Set db = CurrentDb

            'Inventory by LOT FIFO through [Expire] ASC
            '========================================== 
            Set rsInv = CurrentDb.OpenRecordset( _
            "SELECT * FROM [tbl_InventoryAvailForIntl] ORDER BY [Item] DESC,[Expire] ASC", _
            dbOpenDynaset)

            'Need to add expiry date requirement to SO table by item by geo
            '===============================================================
            Set rsSO = CurrentDb.OpenRecordset("SELECT * FROM [tbl_IntlAllocated] ORDER BY [Item] DESC,[Due_Date] ASC ,[Expire] DESC", _
            dbOpenDynaset)


    Do Until rsSO.RecordCount = 0

    'Set search criteria from SO recordset
    '===================================== 
    sCriteria = "Item = " & rsSO!Item & " And Expire >= " & rsSO!Expire

    'Find first SO criteria in the Inventory recordset
    '=================================================
    rsInv.FindFirst (sCriteria)

    If rsInv.NoMatch Then
    'Delete SO because there is no inventory and go to next SO
    rsSO.Delete
    rsSO.MoveNext

    Else
        AllocationQty = IIf(rsSO!Qty_Open >= rsInv!QOH_IntlAllocation, rsInv!QOH_IntlAllocation, rsSO!Qty_Open)

        db.Execute ("INSERT INTO tbl_IntlAllocatedResults (Due_Date, Sale_Order_Num, SO_Line, Item, Qty_OpenStart, Location, Lot, QtyAllocated) " & _
        "VALUES (#" & rsSO!Due_Date & "#,'" & rsSO!Sale_Order_Num & "'," & rsSO!SO_Line & ",'" & rsSO!Item & "'," & rsSO!Qty_OpenStart & ",'" & rsInv!Location & "','" & rsInv!Lot & "'," & AllocationQty & ");")

        rsSO.Edit
        rsSO!Qty_Open = rsSO!Qty_Open - AllocationQty
        rsSO.Update

        If rsSO!Qty_Open = 0 Then
        rsSO.Delete
        rsSO.MoveNext
        End If

        rsInv.Edit
        rsInv!QOH_IntlAllocation = rsInv!QOH_IntlAllocation - AllocationQty
        rsInv.Update

        If rsInv!QOH_IntlAllocation = 0 Then
        rsInv.Delete
        rsInv.MoveNext
            If rsSO.RecordCount = 0 Then
            Exit Do
            End If
                If rsInv!Item <> rsSO!Item Then
                Debug.Print rsSO!Item
                db.Execute ("DELETE tbl_IntlAllocated.* FROM tbl_IntlAllocated WHERE Item = '" & rsSO!Item & "';")
                Set rsSO = CurrentDb.OpenRecordset("SELECT * FROM [tbl_IntlAllocated] ORDER BY [Item] DESC,[Due_Date] DESC", _
                dbOpenDynaset)
                End If
        End If
    End If

    Loop

    rsSO.Close
    Set rsSO = Nothing
    Set qdf = Nothing
    rsInv.Close
    Set rsInv = Nothing

End Function  
布拉德

我假设expire是一个日期,item是一个字符串。不需要任何类型的“附件”的唯一数据类型是数字。需要放入日期,#并需要包装字符串'

sCriteria = "Item = '" & rsSO!Item & "' And Expire >= #" & Format(rsSO!Expire, "yyyy-mm-dd") & "#"

由于Remou的评论,我更新了比较日期的方式,因此没有潜在的歧义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS Access 使用 vba 复制记录集

来自分类Dev

MS Access中存在空白记录时,VBA数据类型不匹配

来自分类Dev

大型记录集(VBA)的MS Access插入速度慢

来自分类Dev

修改查询记录集以完成信息(MS Access)

来自分类Dev

MS Access Visual Basic组记录集并修改值

来自分类Dev

Ms Access、ADODB、记录集、设置主键

来自分类Dev

ms-access查询“类型不匹配”

来自分类Dev

MS Access VBA IF()

来自分类Dev

根据另一个记录集中的记录过滤 MS-Access 记录集

来自分类Dev

SELECT查询中的MS Access“此记录集不可更新”

来自分类Dev

使用类模块将可编辑的ADO记录集返回到MS Access Form

来自分类Dev

如何通过MS Access前端从MATLAB中的SQL Server打开记录集

来自分类Dev

带有 ADODB 记录集的 MS Access ListBox 列属性创建错误 424 Object Required

来自分类Dev

无法检索从 MS Access ADO 中的存储过程返回的记录集

来自分类Dev

MS Access 2013 SQL类型不匹配错误

来自分类Dev

MS-Access SQL中的“条件表达式中的数据类型不匹配”

来自分类Dev

条件表达式 ms-access c# 中的数据类型不匹配

来自分类Dev

SQL查询中的MS Access VBA数据类型不匹配错误

来自分类Dev

MS Access 中的总计记录

来自分类Dev

MS Access VBA数据类型功能不匹配

来自分类Dev

MS Access 2013查询条件

来自分类Dev

MS Access查询多个条件

来自分类Dev

MS Access查询多个条件

来自分类Dev

Int()函数MS Access VBA

来自分类Dev

MS ACCESS vba-错误

来自分类Dev

MS Access VBA 运行查询

来自分类Dev

MS Access 查询 - 不兼容的类型(日期)

来自分类Dev

MS Access 2013:通过VBA使用MS Word的语法检查

来自分类Dev

如何从MS Access 2003 VBA处理MS Excel分页符

Related 相关文章

热门标签

归档