Office中国论坛/Access中国论坛

标题: 从“分批逃跑”说起——关于定位记录兼答Y9X [打印本页]

作者: roych    时间: 2011-9-18 16:33
标题: 从“分批逃跑”说起——关于定位记录兼答Y9X
       多年前看过这么一则笑话,说是两国交战,一个将军受伤被俘。敌国倒不像中国那样优待日本战俘,没什么好吃好喝的,还不请医生,第一天将军的左腿溃烂坏死,便请求把截肢送回祖国,敌国答应了。第二天,右腿又溃烂,再次请求,敌国又答应了。第三天,左手溃烂,将军再次提出要求,这次敌国不答应,大怒,“你以为你想什么我不知道吗?想分批逃跑?没那么容易!”

       想起这个笑话,是因为Y9X在论坛里询问如何拆分记录的问题。我觉得,作为一条完整的记录,不应像这个将军那样把双腿给“拆分”出来,除非当初数据库设计不合理。所以对于为什么要拆分,我是有些疑问的,也许是因为包装问题吧。——不过,管它呢,反正不是我的问题。
       看过他的思路,大体是没问题的。像这种拆分,可以分两步走,第一步,追加一条新纪录。第二步,修改旧有记录数据。通常可以通过执行执行Docmd.RunSQL命令来处理,要领在于调试SQL语句。
      
       不过,我这里打算采用DAO来处理。主要在于上述语句要用Dlookup来获取其它值,写起来嫌麻烦。此外,也想向大家介绍下用书签属性(Bookmark)来定位记录的方法:
      先设置窗体的记录集克隆(RecordsetClone),再用当前的书签为记录集克隆的书签。如果加上FindFirst方法,则很轻易就可以跳转到目标记录。——这通常被用于数据查询,以下为参考代码:
  1. Private Sub Combo94_AfterUpdate()
  2.     Dim rs As Object
  3.     Set rs = Me.Recordset.Clone
  4.     rs.FindFirst "[testID] = " & Me![Combo94]
  5.     If Not rs.EOF Then Me.Bookmark = rs.Bookmark
  6. End Sub
复制代码
[attach]46713[/attach]
作者: wang1950317    时间: 2011-9-18 21:46
理论的不懂,下来看看。谢谢版主分享!
作者: xie62    时间: 2011-9-19 07:29
下来看看。谢谢版主分享!
作者: yanwei82123300    时间: 2011-9-19 12:33
roych 作品不错!!
作者: yanghua1900363    时间: 2011-9-19 16:52
谢谢分享!
作者: 轻风    时间: 2011-9-19 17:00
发现如今的版主们不但会编程,还都会说故事了。{:soso_e128:}
作者: tmtony    时间: 2011-9-19 17:07
能说 会做,是时代的趋势
作者: cjnt007    时间: 2011-9-19 17:10
路过帮顶{:soso_e100:}
作者: roych    时间: 2011-9-19 19:46
轻风 发表于 2011-9-19 17:00
发现如今的版主们不但会编程,还都会说故事了。

编程始终是件枯燥的事情,说个小故事,大家会更乐于接受些。
作者: goto2008    时间: 2011-9-22 11:18
谢谢分享,学习!
作者: todaynew    时间: 2011-9-22 11:40
提倡如此文风。
作者: pq318    时间: 2011-9-22 11:50
遇到过此类问题,还是受教了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3