Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

实现子表编号规则为主表编号加后缀

时 间:2015-06-27 12:56:49
作 者:易勋   ID:35404  城市:上海
摘 要:将子表编号规则设为主表编号加上子记录序号
正 文:

         有个学员问我,怎么让采购订单明细号规则为采购订单号-行号。

         因为平台内置的行号函数(GetLineNumber([Form]))在VBA代码中不能使用,所以只能换一种方式实现。

         正好明细记录是用ADO\DAO方式循环将TMP表中的数据保存到正式表中,我们就可以定义一个变量Counts(初始化Counts=1)来保存循环的次数,循环的次数即为行号。然后将采购订单号-Counts 即可得到想要的编号。

在frmXXX_Edit窗体中的保存按钮单击事件里面添加上相应代码:

'添加的定义变量         
    Dim Counts AS String : Counts = 1  ‘定义变量并初始化
    
         

    cnn.Execute "Delete FROM [采购订单明细表] Where [采购订单号]=" & SQLText(Me!采购订单号)

    strSQL = "Select *  FROM [采购订单明细表] Where [采购订单号]=" & SQLText(Me!采购订单号)

    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)

    Set rstTmp = CurrentDb.OpenRecordset("TMP_采购订单明细表")

    Do Until rstTmp.EOF

        rst.AddNew
'添加的代码,开始——

        rst![采购订单明细号] = Me![采购订单号] & “-” & Counts

        Counts = Counts + 1         ‘每次循环自加一次
'添加的代码,结束——

        rst![采购订单号] = Me![采购订单号]

…

        rst.Update

        rstTmp.MoveNext

    Loop

    rst.Close

    rstTmp.Close

    cnn.CommitTrans
学员使用效果:

 



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助