Office中国论坛/Access中国论坛

标题: [求助]如何在添加记录时将该字段的行来源字段同时更新 [打印本页]

作者: guzai    时间: 2004-10-17 22:09
标题: [求助]如何在添加记录时将该字段的行来源字段同时更新
我做一个病历管理输入数据库,并去word套打

目前其他功能基本实现

但是有1个新问题

例如:我的主表下有一个字段为入院诊断,我通过组合框 选择了子表“入院诊断”

这样我在输入的时候直接有子表下的数据如”脑梗塞、脑出血“等可以选择,省了不少力气

但是有什么办法当我在输入记录到主表的时候,碰到关联的子表内没有的疾病名的情况下,让新的疾病名自动添加到子表”入院诊断“里面呢?

万分感谢



[此贴子已经被作者于2004-10-17 22:25:02编辑过]


作者: guzai    时间: 2004-10-18 06:19
没有好办法么?各位老大
作者: wanshan    时间: 2004-10-18 16:59
让组合框的来源为本字段(分组),在字段的单击事件中写:字段名.requery,这样,新输入的内容就会出现在列表中!
作者: guzai    时间: 2004-10-19 02:01
是在表设计里该还是窗口设计里?
作者: guzai    时间: 2004-10-19 02:07
能否详细一点例如我主表里有个字段是地址    建了个附表也是地址我在主表设计里用了组合框,行来源类型 为表/查询,行来源为 SELECT 住址.* FROM 住址; 那里需要改?在窗体设计里应该怎么改?怎么没有“组合框的来源为本字段(分组)”
作者: guzai    时间: 2004-10-19 02:08
是不是把 行来源类型改为 表/查询,行来源为  住址

我用的是access2000

[此贴子已经被作者于2004-10-18 18:11:20编辑过]


作者: guzai    时间: 2004-10-19 02:16
用了说我找不到宏地址
作者: guzai    时间: 2004-10-19 02:21
能否给我发个例子啊?呵呵实在是菜鸟啊请求支援
作者: wewyhy    时间: 2004-10-19 04:07
以下是引用wanshan在2004-10-18 8:59:10的发言:

让组合框的来源为本字段(分组),在字段的单击事件中写:字段名.requery,这样,新输入的内容就会出现在列表中!

在窗体里



单击事件中:

Private Sub 名字_Click()

On Error GoTo Err_名字_Click



   DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

Exit_名字_Click:

    Exit Sub

Err_名字_Click:

    MsgBox Err.Description

    Resume Exit_名字_Click

End Sub
作者: wewyhy    时间: 2004-10-19 04:09
ACCESS2003的“acFormBar, acRecordsMenu, 5, , acMenuVer70”可能有问题,试试去掉5后面的一个逗号
作者: wanshan    时间: 2004-10-19 04:23
不知道是不是你要的效果!

[attach]7265[/attach]

[attach]7266[/attach]


作者: guzai    时间: 2004-10-19 07:51
以下是引用wewyhy在2004-10-18 20:06:35的发言:





在窗体里







单击事件中:



Private Sub 名字_Click()

On Error GoTo Err_名字_Click





   DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70



Exit_名字_Click:

    Exit Sub



Err_名字_Click:

    MsgBox Err.Description

    Resume Exit_名字_Click



End Sub



楼上的大哥,上面的大概什么意思?

能不能具体解释下步骤?

我不懂编程啊

能麻烦举个例子让我照搬么?呵呵
作者: wanshan    时间: 2004-10-19 16:00
这个是用向导生成的保存代码,最主要的是当中比较长的一句。其它的是用来生成提示的(可以自定义提示,把“MsgBox Err.Description”替换成“MsgBox "自定义提示内容"”),都可以去掉,不影响功能!具体步骤:1.新建一个窗体;2.打开工具箱;3.点击“命令按钮”;4.在窗体相应位置单击,会弹出向导对话框(如果不弹出,必须点一下工具箱上面的“控件向导”按钮);5.选择相应的命令即可生成相应的代码。
作者: guzai    时间: 2004-10-20 04:00
Option Compare Database

Private Sub Command6_Click()

    DoCmd.GoToRecord , , acNewRec

End Sub

Private Sub Command7_Click()

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

    病名.Requery

End SubPrivate Sub 病名_BeforeUpdate(Cancel As Integer)End Sub

是不是这样的显示?有个beforeupdate
作者: guzai    时间: 2004-10-20 04:15
可自动生成的窗体里的框都是文本框,不是组合框我看你在表1里没有设置为组合框那么请问你怎么把文本框改成组合框的?
作者: guzai    时间: 2004-10-20 04:16
哦,搞懂了,呵呵,谢谢了可惜我的病历输入都做好了,好不容易排好的版,又费了
作者: guzai    时间: 2004-10-20 04:22
原来是在DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70下面加一句字段名.requery
作者: guzai    时间: 2004-10-20 04:37
这样的话例子:一个数据库内有一个表  “信息”里面字段为:姓名,年龄,性别如果在窗口设计里“年龄”选组合框,来源于“信息”中的年龄,用了年龄.requery,用保存命令的话是可以实现添加原来年龄字段里没有的值但如果我在“信息”表内的“年龄”字段的设计里引用了数据库下第二个表“年龄”,行来源于第二个表的年龄字段的话我添加 年龄.requery却无法保存了是不是 要加点其他语句呢?
作者: wanshan    时间: 2004-10-20 15:40
不知道你说无法的保存具体是什么意思!如果是保存时提示错误,把库传上来!如果是保存后无法在列表里显示,是因为来源不同,你添加的是在表1,而列表来源是在表2,怎么可能列出来呢?




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