Office中国论坛/Access中国论坛

标题: 求助:输入物品名称和采购单价相同时自动合并的例子 [打印本页]

作者: sunwrsun    时间: 2016-4-4 17:09
标题: 求助:输入物品名称和采购单价相同时自动合并的例子
    附件中有两个实例:一个是流水编码字段为数字型,操作没有问题。另外一个是把流水编码字段为修改为文本型后操作报错,提示“标准表达式中数据类型不匹配”,代码如下:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim rs As New ADODB.Recordset
    Dim strSql As String
    strSql = "select * from 物品管理_采购单临时表 where 流水编码=" & Me.流水编码 & " and 采购临时ID<" & Me.采购临时ID & ""
    rs.Open strSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    Do While Not rs.EOF
        If Me.物品编码 = rs!物品编码 Then
        If Me.采购单价 = rs!采购单价 Then
        Me.采购数量 = Me.采购数量 + rs!采购数量
        rs.Delete
        Exit Do
        End If
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

报错代码行为
rs.Open strSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
请问如何解决,谢谢。
作者: sunwrsun    时间: 2016-4-4 17:11
附件
作者: roych    时间: 2016-4-4 23:37
文本类型时,应该加上单引号【如下】,否则就是数据类型不匹配了:
"select * from 物品管理_采购单临时表 where 流水编码='" & Me.流水编码 & "' and 采购临时ID<" & Me.采购临时ID
如果需要变更数据类型的话,建议创建一个查询来转换,例如:
select clng([流水编码]) as 流水编号1,字段1,字段2……字段N from 物品管理_采购临时表
然后再用rs.open 上述查询。
作者: sunwrsun    时间: 2016-4-5 01:22
谢谢版主,按照您的方法问题解决了。谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3