设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7972|回复: 12
打印 上一主题 下一主题

[CRM] 自定义自动编号的问题

[复制链接]
跳转到指定楼层
1#
发表于 2010-3-24 01:33:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 loginwjd303 于 2010-3-28 23:52 编辑

附档中我自定义自动编号为何老是出错,但将"ABC"改成"123"又可以.谢谢!
出错窗体为 订单_ADO事务
如何才能将其中的订单ID改成如 RA-100324-001 增量为1的自定义编号



解决如下:
Dim stID As String
    If IsNull(Me.OpenArgs) Then
             Dim day As String
       If IsNull(DLookup("订单ID", "订单")) Then           '检查表内是否有数据
            stID = "RK" & Format(Date, "yyyymm") & "001"
       Else
            day = Mid(DMax("订单ID", "订单"), 3, 6)          '取出编号中的日期
             If day = Format(Date, "yyyymm") Then                              '对比日期
                 stID = "RK" & Format(Date, "yyyymm") & Format(CLng(Mid(DMax("订单ID", "订单"), 9, 11) + 1), "000")
             Else
                 stID = "RK" & Format(Date, "yyyymm") & "001"
             End If
       End If
   
    Else
        stID = Me.OpenArgs
    End If

    Set mADOTransForm = New ADOTransForm
    mADOTransForm.InitForm Me, "Select * From 订单 Where 订单ID='" & stID & "'", Me.订单明细_子窗体, "Select * From 订单明细 Where 订单ID='" & stID & "'"

    If mADOTransForm.FormDataMode Then
        Me.Caption = "添加订单"
         Me.订单ID.DefaultValue = "'" & stID & "'"
    Else
        Me.Caption = "编辑订单"
    End If
   
  Me.订单明细_子窗体.Form.订单ID.DefaultValue = "'" & stID & "'"

在这里要感谢HI-WZJ版主一对一的辅导,版主当时提到引号的问题.对于帮助本帖的其他老师一并致谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-3-24 10:44:27 | 只看该作者
建议将问题所在窗体标识出来,便于大家查看。
3#
 楼主| 发表于 2010-3-24 11:55:27 | 只看该作者
如何才能将其中的订单ID改成如 RA-100324-001 增量为1的自定义编号
4#
发表于 2010-3-24 12:26:01 | 只看该作者
利用VBA语言,X代表需要递增的ID文本数据,y用于进行最后三位数的递增计算
Private Sub Form_Load()
Dim x As String
Dim y As Integer

x = "RA-100324-099"
y = Right(x, 3) + 1

If y < 10 Then
   x = Left(x, 12)
   Else
     If y >= 10 And y < 100 Then
       x = Left(x, 11)
       Else
         If y >= 100 Then
           x = Left(x, 10)
        End If
    End If
End If

MsgBox x & y   ;此处显示的结果就是递增后的结果,可以直接赋值给新的ID

End Sub
5#
 楼主| 发表于 2010-3-24 13:57:19 | 只看该作者
感谢chuang0321 ,但还是不行,出错
6#
发表于 2010-3-26 09:31:45 | 只看该作者
我在你的“订单_子”中加入了如下语句,可以实现该窗体id的自动增加,不过数据库数据录入、保存等其他问题需要你自己解决

Private Sub Form_Load()

Dim x As String
Dim y As Integer

If Me.NewRecord Then
If DCount("[订单ID]", "订单") = 0 Then
  订单ID = "RA-100324-001"
Else
x = DMax("[订单ID]", "订单")
y = Right(x, 3) + 1

If y < 10 Then
   x = Left(x, 12)
   Else
     If y >= 10 And y < 100 Then
       x = Left(x, 11)
       Else
         If y >= 100 Then
           x = Left(x, 10)
        End If
    End If
End If


订单ID = x & y
'MsgBox x & y   '此处显示的结果就是递增后的结果,可以直接赋值给新的ID
End If
End If
End Sub
7#
 楼主| 发表于 2010-3-28 01:01:35 | 只看该作者
改后提示数据类型不对.
8#
发表于 2010-3-30 10:17:24 | 只看该作者
为了看东西,所以回复东西!
9#
发表于 2010-4-25 04:28:16 | 只看该作者
学习下,希望有更简单的代码.上面看到我头大
10#
发表于 2010-4-27 14:21:27 | 只看该作者
好厉害
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-30 03:00 , Processed in 0.086645 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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