Access交流中心

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

上一条记录给本条记录赋值,如何不用中间变量

小冉  发表于:2015-06-26 16:59:31  
复制

    Dim rs As Recordset
    Dim a As Field
    Dim b As Field
    Dim c As String
    Dim d As Integer
    

    Set rs = Db1.OpenRecordset("车辆GPS数据")

    Set a = rs.Fields("站点")

    Set b = rs.Fields("上下行指数")
    rs.Edit
    b = 1
    c = a
    d = b
    rs.Update
    rs.MoveNext
    Do While Not rs.EOF
        rs.Edit
        If a = c And a = "风景区" Then b = 1 Else If a = c And a = "火车站" Then b = 2 Else b = d
        c = a
        d = b
        rs.Update
        rs.MoveNext

    Loop 

这是代码,已经实现依据本条记录和上一条记录的站点名称、以及上一条记录的上下行指数给本条记录的上下行指数赋值,但是中间采用了c和d作为过渡变量,使得程序显得太繁琐。请教各位大侠,有没有相对简化的VBA代码?


 

Top
金宇 发表于:2015-06-26 22:13:40
个人觉得应该只能通过中间变量来获取上一条记录的值

网行者 发表于:2015-06-27 18:24:17
参考《新增记录时复制过往指定记录的示例》http://www.accessoft.com/blog/article-show.asp?userid=12122&Id=8678

杜超 发表于:2015-06-28 16:27:42
用追加查询或DAO,ADO

煮江品茶 发表于:2015-06-28 18:00:50
Dim rs As Recordset
Set rs = Db1.OpenRecordset("车辆GPS数据")
Do While Not rs.EOF
   rs.Edit
   rs.Fields("上下行指数")=1
   if rs.Fields("站点")="火车站" then rs.Fields("上下行指数")=2
   rs.Update
   rs.MoveNext
Loop

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