怎么样能在子窗体中呈现满足条件的记录集

Eric2Smile 2008-05-27 02:01:00
我有个子窗体,要在里面录入记录,子窗体的记录源是个查询。现在子窗体里面是好多条记录,有很多记录字段值齐全并不需要录入,只有一些记录某些字段留空是等待录入的。

现在我每次在子窗体里面录的时候,都得先找着那些字段值不全的记录蛮费功夫。请问,如何能在点了某个按钮后,子窗体的视图方式变成了“单个窗体”形式,同时里面就只有字段值不全的记录。我已经实现了转换视图方式,但不知道怎么让子窗体里面只有那些满足我说的条件(即只有那些字段值不全等待录入)的记录,我写的部分代码如下:
Me.GroupInfoSub.SourceObject = ""
DoCmd.OpenForm "GroupInfoSub", acDesign
DoCmd.SelectObject acForm, "GroupInfoSub"
Forms("GroupInfoSub").DefaultView = 0
DoCmd.Save acForm, "GroupInfoSub"
DoCmd.Close acForm, "GroupInfoSub"
me.GroupInfoSub.SourceObject = "GroupInfoSub"

上面代码实现了转换视图为单个窗体,但如何只提取那些字段值不全的记录集呢?
...全文
224 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-06-02
  • 打赏
  • 举报
回复
or
Me.GroupInfoSub.Form.RecordSource = "select * from 分组表 where 组号 is null or 组中角色 is null"
'Me.GroupInfoSub.SourceObject = "窗体1"
DoCmd.OpenForm "GroupInfoSub", acDesign
DoCmd.SelectObject acForm, "GroupInfoSub"
Forms("GroupInfoSub").姓名_Label.Visible = False
Forms("GroupInfoSub").姓名.Visible = False
Forms("GroupInfoSub").课程名_Label.Visible = False
Forms("GroupInfoSub").课程名.Visible = False
Forms("GroupInfoSub").组中角色_标签.Visible = False
Forms("GroupInfoSub").List12.Visible = False
Forms("GroupInfoSub").DefaultView = 0
DoCmd.Save acForm, "GroupInfoSub"
DoCmd.Close acForm, "GroupInfoSub"
Me.GroupInfoSub.SourceObject = ""
Me.GroupInfoSub.SourceObject = "GroupInfoSub"
wwwwb 2008-05-30
  • 打赏
  • 举报
回复
示例:
设计一个子窗体:窗体1,数据源为:
SELECT *
FROM 分组表
WHERE 组号 is null or 组中角色 is null;

在录入按钮中:
Me.GroupInfoSub.SourceObject = "窗体1"

因为你只改变了RECORDSOURCE,而没有改变窗体中的设计(有些字段是没有的)
Eric2Smile 2008-05-29
  • 打赏
  • 举报
回复
那该怎么控制参数啊?拜托就说下,下面这个代码怎么改把

set rr=currentdb.openrecordset("select * from tt where c is null or d is null")
Me.GroupInfoSub.SourceObject = "rr"
DoCmd.OpenForm "GroupInfoSub", acDesign
DoCmd.SelectObject acForm, "GroupInfoSub"
Forms("GroupInfoSub").DefaultView = 0
DoCmd.Save acForm, "GroupInfoSub"
DoCmd.Close acForm, "GroupInfoSub"
me.GroupInfoSub.SourceObject = "GroupInfoSub"

ccssddnnhelp 2008-05-29
  • 打赏
  • 举报
回复

我是就用现有的GroupInfoSub,不行吗?

可以,用参数控制一下就行了。.
==== ====

.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
Eric2Smile 2008-05-29
  • 打赏
  • 举报
回复
那是要再加一个子窗体吗?我是就用现有的GroupInfoSub,不行吗?
WWWWA 2008-05-29
  • 打赏
  • 举报
回复
看了一下,要设置一个子窗体,与
select * from yourTable where c is null or d is null
匹配的子窗体,设置SOURCEOBJECT
Eric2Smile 2008-05-29
  • 打赏
  • 举报
回复
又传了一份2000格式的:

http://www.access911.net/csdn/FileDescription.asp?mdb=2008-5-29&id=102&mode=3
WWWWA 2008-05-29
  • 打赏
  • 举报
回复
最好用2000格式
Eric2Smile 2008-05-29
  • 打赏
  • 举报
回复
MDB已经上传了:

http://www.access911.net/csdn/filedescription.asp?mdb=2008-5-29&id=100&mode=3

操作说明见描述。
wwwwb 2008-05-28
  • 打赏
  • 举报
回复
上传MDB到www.access911.net/csdn
ccssddnnhelp 2008-05-27
  • 打赏
  • 举报
回复

还是上传吧,不过尽量只保留需要的表和FORM。.
==== ====

.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
Eric2Smile 2008-05-27
  • 打赏
  • 举报
回复
不行啊,到底怎么写啊?
ccssddnnhelp 2008-05-27
  • 打赏
  • 举报
回复

楼主你定要看帮助了。俗语说,磨刀不误砍柴功。.
==== ====

.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
ccssddnnhelp 2008-05-27
  • 打赏
  • 举报
回复

me.GroupInfoSub.form.RecordSource="select * from yourTable where c is null or d is null".
==== ====

.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
Eric2Smile 2008-05-27
  • 打赏
  • 举报
回复
记录集中有记录啊,咋回事?
set rr=currentdb.openrecordset("select * from tt where c is null or d is null")
Me.GroupInfoSub.SourceObject = "rr"
DoCmd.OpenForm "GroupInfoSub", acDesign
DoCmd.SelectObject acForm, "GroupInfoSub"
Forms("GroupInfoSub").DefaultView = 0
DoCmd.Save acForm, "GroupInfoSub"
DoCmd.Close acForm, "GroupInfoSub"
me.GroupInfoSub.SourceObject = "GroupInfoSub"
上面的代码真的没问题吗?
WWWWA 2008-05-27
  • 打赏
  • 举报
回复
set rr=currentdb.openrecordset("select * from tt where c is null or d is null")
这句没有问题,记录集中是否有记录?
Eric2Smile 2008-05-27
  • 打赏
  • 举报
回复
我测试了下,不对~~ 说什么引擎错误之类的话

Me.GroupInfoSub.SourceObject = "rr"
是这句出错的~

怎么回事啊,语法不对吗?
WWWWA 2008-05-27
  • 打赏
  • 举报
回复
应该是可以的
Eric2Smile 2008-05-27
  • 打赏
  • 举报
回复
好像VB里面不能直接写SQL的把~~ 我想写成这样,看行不:

set rr=currentdb.openrecordset("select * from tt where c is null or d is null")
Me.GroupInfoSub.SourceObject = "rr"
DoCmd.OpenForm "GroupInfoSub", acDesign
DoCmd.SelectObject acForm, "GroupInfoSub"
Forms("GroupInfoSub").DefaultView = 0
DoCmd.Save acForm, "GroupInfoSub"
DoCmd.Close acForm, "GroupInfoSub"
me.GroupInfoSub.SourceObject = "GroupInfoSub"

我上面写的意思是说,把c,d字段值为空的记录集rr作为子窗体GroupInfoSub的数据源,不晓得对不对?
WWWWA 2008-05-27
  • 打赏
  • 举报
回复
呵呵,不是这个意思?
select * from tt where c is null or d is null
加载更多回复(2)

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧