设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 从“分批逃跑”说起——关于定位记录兼答Y9X

[复制链接]
跳转到指定楼层
1#
发表于 2011-9-18 16:33:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       多年前看过这么一则笑话,说是两国交战,一个将军受伤被俘。敌国倒不像中国那样优待日本战俘,没什么好吃好喝的,还不请医生,第一天将军的左腿溃烂坏死,便请求把截肢送回祖国,敌国答应了。第二天,右腿又溃烂,再次请求,敌国又答应了。第三天,左手溃烂,将军再次提出要求,这次敌国不答应,大怒,“你以为你想什么我不知道吗?想分批逃跑?没那么容易!”

       想起这个笑话,是因为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
复制代码

本帖子中包含更多资源

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

x

评分

参与人数 1经验 +10 收起 理由
todaynew + 10 淡定

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-9-18 21:46:03 | 只看该作者
理论的不懂,下来看看。谢谢版主分享!
3#
发表于 2011-9-19 07:29:42 | 只看该作者
下来看看。谢谢版主分享!
4#
发表于 2011-9-19 12:33:45 | 只看该作者
roych 作品不错!!
5#
发表于 2011-9-19 16:52:57 | 只看该作者
谢谢分享!

点击这里给我发消息

6#
发表于 2011-9-19 17:00:07 | 只看该作者
发现如今的版主们不但会编程,还都会说故事了。{:soso_e128:}

点击这里给我发消息

7#
发表于 2011-9-19 17:07:19 | 只看该作者
能说 会做,是时代的趋势
8#
发表于 2011-9-19 17:10:06 | 只看该作者
路过帮顶{:soso_e100:}
9#
 楼主| 发表于 2011-9-19 19:46:14 | 只看该作者
轻风 发表于 2011-9-19 17:00
发现如今的版主们不但会编程,还都会说故事了。

编程始终是件枯燥的事情,说个小故事,大家会更乐于接受些。
10#
发表于 2011-9-22 11:18:54 | 只看该作者
谢谢分享,学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 04:09 , Processed in 0.112672 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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