Access交流中心

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

回复 加入收藏帖  复制
我要提问 帖子上移

关于自己编号

小梅 等级: 普通会员 积分:2 金币:40 来自:黄冈Access交流中心 发表于:2011-10-11 18:20:15   已结帖
楼主

以下打开窗体自动加载的自动编号能否实现无限编号,现在只能4位数,到了9999以后就法再往合加了。

 

 

 

Private Sub Form_Load()
Dim strWhere As String '定义条件字符串


strWhere = Nz(DMax("BOM编号", "产品档案"))
            If strWhere = "" Then
                Me.Text10 = "P-BOM-" & "0001"
            Else
                Me.Text10 = Left(strWhere, 6) & Format(Right(strWhere, 4) + 1, String(4, "0"))
            End If

 

End Sub

 

access培训  诚聘access开发人员

    小梅
      获得社区协助:请教问题(即发帖)69篇,其中获得解决的60篇;
      协助社区成员:协助他人(即回帖)2篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章1篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

符鸿敏 等级:版主★★★★★ 积分:1071 金币:920 来自:上饶Access交流中心 发表于2011/10/11 19:48:28 
1楼 得分: 0
strWhere = Nz(DMax("BOM编号", "产品档案"))
If strWhere = "" Then
Me.Text10 = "P-BOM-" & "0001"
Else
Me.Text10 = Left(strWhere, 6) & dmax(mid(strWhere, 7)) + 1
End If

End Sub

 

试试吧。



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    符鸿敏
      获得社区协助:请教问题(即发帖)5篇,其中获得解决的5篇;
      协助社区成员:协助他人(即回帖)703篇,其中被设为【最佳答案】的190篇;
      协助我们社区:发布技术文章23篇,邀请了7名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
符鸿敏 等级:版主★★★★★ 积分:1071 金币:920 来自:上饶Access交流中心 发表于2011/10/11 19:52:38 
2楼 得分: 0

已经有了:strWhere = Nz(DMax("BOM编号", "产品档案"))

Else
Me.Text10 = Left(strWhere, 6) & dmax(mid(strWhere, 7)) + 1 句就不必dmax 了

因此应该为

Else

Me.Text10 = Left(strWhere, 6) & mid(strWhere, 7) + 1

 





    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    符鸿敏
      获得社区协助:请教问题(即发帖)5篇,其中获得解决的5篇;
      协助社区成员:协助他人(即回帖)703篇,其中被设为【最佳答案】的190篇;
      协助我们社区:发布技术文章23篇,邀请了7名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
小梅 等级:普通会员 积分:2 金币:40 来自:黄冈Access交流中心 发表于2011/10/11 22:34:48 
3楼 得分: 0

你好:

       我用你的代码测试了一下到了100就不行了,现在示例上传请赐教,谢谢!直接点保存按钮即可测试,其它要保存的内容我都注示了。

点击下载此附件

    小梅
      获得社区协助:请教问题(即发帖)69篇,其中获得解决的60篇;
      协助社区成员:协助他人(即回帖)2篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章1篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
都市侠影 等级:一星会员 积分:669 金币:320 来自:成都Access交流中心 发表于2011/10/12 16:41:05 
4楼 得分: 0

不知道无限编号有何意义,难道你能忍受一个编号就占据你半个硬盘的空间,你真有钱!



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    都市侠影
      获得社区协助:请教问题(即发帖)12篇,其中获得解决的10篇;
      协助社区成员:协助他人(即回帖)290篇,其中被设为【最佳答案】的37篇;
      协助我们社区:发布技术文章8篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
符鸿敏 等级:版主★★★★★ 积分:1071 金币:920 来自:上饶Access交流中心 发表于2011/10/12 19:07:47 最佳答案
5楼 得分: 2

新建BOM窗体的加载窗体代码改为:

Private Sub Form_Load()
    Dim strWhere As String    '定义条件字符串


    strWhere = DLookup("BOM编号", "产品档案")
     If strWhere = "" Then
        Me.Text10 = "P-BOM-" & "0001"
    Else
       Me.Text10 = Left(strWhere, 6) & Format(DMax("CCur(Mid(BOM编号,7))", "产品档案") + 1, String(Len(Mid(strWhere, 8)), "0"))

    End If

 End Sub

因为你表里的"BOM编号“字段是文本型的, 如果不是这样改,比如表中数据为如下时

产品档案
BOM编号
P-BOM-1000
P-BOM-23
P-BOM-24
P-BOM-25

 

有可能新增编号会是P-BOM-26

 

而且这样改了以后,数据号还可以无限增加了,不像通常的被限制多少位了。



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    符鸿敏
      获得社区协助:请教问题(即发帖)5篇,其中获得解决的5篇;
      协助社区成员:协助他人(即回帖)703篇,其中被设为【最佳答案】的190篇;
      协助我们社区:发布技术文章23篇,邀请了7名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:5篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。