Access交流中心

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

提示“数据明细不能为空”,“不能找到表达式中引用的字段"|1"

杨乐  发表于:2018-07-17 16:26:37  
复制

点击下载此附件

这是我重新下载的快速开发平台上的数据库文件和主文件,因为无法全部上传,所以只上传了这两个文件 ,我已经做好的程序,文件太大,包含的东西太多,无法上传。

现在的主要问题是:我现在开发的程序已经完成,也正在使用,但是现在需要在原来的基础上加上几个字段,同时,改一下自动计算的内容,我在原窗体上改,改过以后一进提示”数据明细不能为空“,无法保存。

                          后来我干脆直接把原来的窗体删除,用自动生成器再生成了一组窗体,把代码写进去以后,又一进提示”不能找到表达式中引用的字段"|1",就算是我把原来没出问题的程序代码粘贴进去依然出现这个提示。

求各位大神帮忙啊!!!

原来没出问题时的代码:
    Dim strSQL: strSQL = "SELECT * FROM [FYMX] WHERE [BH]=" & Nz(Me![BH], 0)
    Dim rst:    Set rst = ADO.OpenRecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
    rst.AddNew
    rst!CZY = GetParameter("Current User Username")
    rst![ZBCJE] = Round([XNHBCJE] + [QTBCJE], 2)
    rst!XTSBBZ = DLookup("[XTSBBZ]", "FPRYXXB_Q", "[SFZH] = Forms![frmFYMX_Edit]!SFZH")
    If [ZYJBQFX] < 301 Then
    rst![BCJMFY] = Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2)
    rst![GRZFJE] = Round([ZYZFY] - [XNHBCJE] - [QTBCJE] - Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2), 2)
    Else
    rst![BCJMFY] = Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2)
    rst![GRZFJE] = Round([ZYZFY] - [XNHBCJE] - [QTBCJE] - Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2), 2)
    End If
    End If
    If Not rst.EOF Then
    rst![ZBCJE] = Round([XNHBCJE] + [QTBCJE], 2)
    rst!XTSBBZ = DLookup("[XTSBBZ]", "FPRYXXB_Q", "[SFZH] = Forms![frmFYMX_Edit]!SFZH")
    If [ZYJBQFX] < 301 Then
    rst![BCJMFY] = Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2)
    rst![GRZFJE] = Round([ZYZFY] - [XNHBCJE] - [QTBCJE] - Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] + [ZLF] * 0.1 + [CWF] * 0.1 + [ZLF_1] * 0.1 + [ZSF] * 0.1 + [JBYLFWZZFXM] * 0.3 + [CC] * 0.3 + [CGZ] * 0.3 + [CT] * 0.3 + [QT] * 0.4, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2), 2)
    Else
    rst![BCJMFY] = Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2)
    rst![GRZFJE] = Round([ZYZFY] - [XNHBCJE] - [QTBCJE] - Round(IIf([ZYZFY] - [XNHBCJE] - [QTBCJE] > ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, ([ZYZFY] - [JBYLFWZZFXM] - [ZYJBQFX]) * 0.05 + [ZYJBQFX] * 0.5, [ZYZFY] - [XNHBCJE] - [QTBCJE]), 2), 2)
    End If
    End If
现在的代码已经写在了附件里,

自动生成的窗体,我只改了保存单击和身份证号更新后代码,身份证号更新后代码没有问题,IF语句以前也都没有问题,我都试过了,

这几个是这次新加上去的字段

还有,怎么才参把完整的软件上传上去啊?


 

Top
HuangDuDu 发表于:2018-07-17 16:42:46

问题在  ZBCJE   没有这个名称的控件

如果是计算得到 麻烦引用对应计算



杨乐 发表于:2018-07-17 16:54:54

就算是我用原来没有错误时的代码同样出错,你说的这种方法我已经试过不只一遍,

我已经把我的文件上传到了百度网盘中,大神可以看看,帮忙解决一下,我只是一个初学者,从接解ACCESS到现在也就几个月时间,基础性的东西很多都不懂,我都是需要哪些知识才会看哪些知识,没有时间系统的去学习,我都是照葫芦画瓢,所以很多东西都不懂,请大神见谅!!下面是链接,

链接: https://pan.baidu.com/s/1x-7lN8jOqiuUpq6pQJmYxA 密码: 8xvt



仙来 发表于:2018-07-17 17:36:43

  rst!XTSBBZ = DLookup("[XTSBBZ]", "FPRYXXB_Q", "[SFZH] = Forms![frmFYMX_Edit]!SFZH")

目测这句函数有问题




杨乐 发表于:2018-07-17 22:31:22
这个没有问题,我把下面if语句注释掉后,这条语句可以正常执行!

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