ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2502|回复: 14

[求助] 如何用VB实现合同编号

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-14 14:55 | 显示全部楼层 |阅读模式
1.合同编号为固定,只要ZXXS+日期(20180901)+001
2.当我合同内容都填写完,点击一个按钮确认,就是直接把合同编号确认,另外生成一个新表,新合同编码!
麻烦各位大神了!!!



TEXT1.xlsx.zip

11.68 KB, 下载次数: 30

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:01 | 显示全部楼层
本帖最后由 mmx1122 于 2018-9-14 15:05 编辑

'我这个可以实现。可能有点复杂,但是很简单。原理是:每次先去数据库查询最后一个单据编号,如果有就是加1,如果没有,就用新的日期& 0001
我的格式:HL2017080501
Dim Y As String
Dim m As String
Dim D As String
Dim s As String

Sub 新增核料单()

    Y = Year(Date)
    m = Format(Month(Date), "00")
    D = Format(Day(Date), "00")
    s = Y & m & D

    On Error GoTo er
'    cn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\Data.mdb" & ";User ID=; Jet OLEDB:database Password = 6318"
   
    With Form1
        sq1 = "SELECT TOP 1 单据编号 FROM 核料表 ORDER BY 单据编号 DESC"
   
        rs1.Open sq1, cn, adOpenKeyset, adLockOptimistic

        If Mid(rs1.Fields("单据编号"), 3, 8) = s Then
            .单据编号 = "HL" & Format(Val(Right(rs1.Fields("单据编号").Value, 10)) + 1, "0000000000")
        Else
            .单据编号 = "HL" & s & "01"
        End If
   
        rs1.Close
        cn.Close
        Set rs1 = Nothing
        Set cn = Nothing
        Exit Sub
er:
        rs1.Close
        cn.Close
        Set rs1 = Nothing
        Set cn = Nothing
        .单据编号 = "HL" & s & "01"
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 15:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
mmx1122 发表于 2018-9-14 15:01
'我这个可以实现。可能有点复杂,但是很简单。原理是:每次先去数据库查询最后一个单据编号,如果有就是加1 ...

就是要先多建一个表作为数据查询吗

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 15:12 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 15:14 | 显示全部楼层
mmx1122 发表于 2018-9-14 15:01
'我这个可以实现。可能有点复杂,但是很简单。原理是:每次先去数据库查询最后一个单据编号,如果有就是加1 ...

我是新手,不知道怎么弄
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 simic1989 于 2018-9-14 15:21 编辑

合同编号写在哪?订单号码那边吗?日期你是想要当天的日期?比如这种形式ZXXS20180914001?你点击后想要形成的新表是空表还是你已经填好的合同,但是换个新的合同号?

TA的精华主题

TA的得分主题

发表于 2018-9-14 15:27 | 显示全部楼层
zhaozh2h 发表于 2018-9-14 15:14
我是新手,不知道怎么弄

大家原理都差不多。我说一下我的想法:

假设你之前没有任何数据
9月14日开始做第1张单子,单据编号是 DH201809140001,那么当你做第二张单子时候,你要让系统知道你前面做了几个单子了,单号排到了多少号了,所以你需要去查一下。例如目前只做了1个单子,单号排到了001了,那么现在就要加1,变成0002才对。后面以此类推了。。。。。接下来明天15号再做的时候,日期就变了,你还要让系统去查,查什么呢? 去查单号里有没有和日期20180915一样的,在这里肯定没有啦,所以直接生成单号就是DH201809150001。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-14 15:34 | 显示全部楼层

还有就是,我点击确认之后,会生成新的表,然后确认之前的内容单独保存或者生成新的工作表。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 12:35 , Processed in 0.046227 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表