Access交流中心

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

[5分]求助一个对表格内容进行批量按规则编号后追加进另外一个表的问题

咖啡加冰  发表于:2009-04-21 13:47:19  
复制

说起来比较复杂,关系是这样的:我有4个表:
qryxsjbxx(学生个人基本信息,原本是个查询,暂且转换为表一遍放入实例)
tblgrjcjl(个人奖惩记录表,其编号规则是"GR200904210001")
tblgrjcjl_temp(根据寝室奖惩记录表中,寝室对应学生个人信息的关系,利用生成表得到)
tblqsjcjl(寝室奖惩记录表)
现在遇到的问题,需要解决的是:
得到tblgrjcjl_temp后,要对其ID字段进行编号,编号规则与个人奖惩记录表内要求相同,同时不能与个人奖惩记录表中现有编号重复

实例如下:

点击下载此附件

问题图片如下:

 

Top
竹笛 发表于:2009-04-21 14:51:22
Sub aa()
    Dim RST As DAO.Recordset
    Dim MaxID As String    '表中的最大编号
    Dim strDay As String    '表中的日期
    Dim strToday As String    '系统日期
    Dim MaxNum As Long    '表中的最大序号
    '原理:
    '1.首先判断tblgrjcjl有没有当天的记录,如果有,就获得最大序号,如果没有,就从1开始编号
    MaxID = DMax("[Id]", "tblgrjcjl")    '表中的最大编号
    strDay = Mid(MaxID, 3, 8)
    strToday = Format(Date, "YYYYMMDD")
    Set RST = CurrentDb.OpenRecordset("tblqsgrjcjl_temp", dbOpenDynaset)
    If strDay = strToday Then    '说明tblgrjcjl有当天的记录,接着当天的记录号继续往下编号
        MaxNum = Val(Right(MaxID, 4)) + 1
    Else    '说明tblgrjcjl没有当天的记录编号,从1开始编号
        MaxNum = 1
    End If
    RST.MoveFirst
    Do Until RST.EOF
        RST.Edit
        RST("Id") = "GR" & strDay & Format(MaxNum, "0000")
        MaxNum = MaxNum + 1
        RST.Update
        RST.MoveNext
    Loop
    RST.Close
    Set RST = Nothing
    MsgBox "编号已结束"
End Sub


PANZJ 发表于:2009-04-21 16:14:50

我用查询尝试实现你要求的功能,请查核

点击下载此附件

咖啡加冰 发表于:2009-04-23 07:38:41

谢谢!!!!



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