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

 

Top
符鸿敏 发表于:2011-10-11 19:48:28
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

 

试试吧。



符鸿敏 发表于:2011-10-11 19:52:38

已经有了: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

 





小梅 发表于:2011-10-11 22:34:48

你好:

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

点击下载此附件

都市侠影 发表于:2011-10-12 16:41:05

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



符鸿敏 发表于:2011-10-12 19:07:47

新建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

 

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



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