Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

模块 “输入的表达式对 Parent 属性的引用无效”

半夜罗  发表于:2016-07-17 18:05:36  
复制

请问老师,这个模块错误在哪里!!!!!

'变量MainID--日期控件,sTableName--表名称,sFieldName--字段名称
'调用,Me.销售单号 = lsbh(Me.Parent.销售单号, "销售单临时表", "销售单号")

Public Function lsbh(ByVal MainID As String, ByVal sTableName As String, ByVal sFieldName As String)
    On Error GoTo ErrorHandler:


    Dim zdlsbh As String '最大编号
    Dim lsbhqz As String '编号前缀
    Dim lsbh1 As String '编号

    lsbhqz = Format(MainID, "YYmmdd")

    zdlsbh = Nz(DMax("right ([" & sFieldName & "],3)", sTableName, "left([" & sFieldName & "],6) = '" & lsbhqz & "'"), "")


    lsbh1 = lsbhqz & Format(Val((zdlsbh)) + 1, "000")    '序列号3个字符


    lsbh = Val(lsbh1) '转换成数字型


ExitHere:
    Exit Function


ErrorHandler:
    MsgBox Err.Description, vbInformation, "提示"
    Resume ExitHere:


End Function

这个模块是根据窗体中的模块改写的,在窗体中使用下面的代码没有问题,而将其改成上面的就提示:模块 “输入的表达式对 Parent 属性的引用无效”

    Dim  流水最大编号 As String
    Dim  流水编号前缀 As String
    Dim  流水编号 As String


    流水编号前缀 = Format(Me.日期, "YYmmdd")


    'right 取从最右边算起的n个字符,
    'left 取从最左边算起的n个字符,DMax 取最大数
    ' Mid(字符串,左边起始位置,n)从字符串的左边起始位置开始,截取n个字符,如果不写n,返回右侧所有字符。


    流水最大编号 = Nz(DMax("right ([流水号],3)", "销售单", "left([流水号],6) = '" & 流水编号前缀 & "'"), "")




    流水编号 = 流水编号前缀 & Format(Val((流水最大编号)) + 1, "000")    '序列号3个字符


 
    Me.流水号 = Val(流水编号)



 

Top
金宇 发表于:2016-07-17 20:15:57
看不出来是什么问题,要么是你函数传入参数有问题,最好将你的示例做为附件上传。

半夜罗 发表于:2016-07-17 20:36:29
半夜罗 发表于:2016-07-18 20:48:18

已经解决,原来是调用上出错

原调用代码  '调用,Me.销售单号 = lsbh(Me.Parent.销售单号, "销售单临时表", "销售单号")

应改为   Me.销售单号 = lsbh(Me.Parent.日期, "销售单临时表", "销售单号")



总记录:3篇  页次:1/1 9 1 :