Office中国论坛/Access中国论坛

标题: [求助]一个窗体能否同时对两个表输入数据 [打印本页]

作者: hnyyly    时间: 2005-6-1 08:01
标题: [求助]一个窗体能否同时对两个表输入数据
我建立了一个窗体,本来这个窗体是对应一个数据表的,但我想一个窗体对应两个数据表,也就是说,对一个窗体输入数据,那两个数据表内都有数据保存进去,请大家帮帮忙,谢谢!
作者: 淼漫    时间: 2005-6-1 08:04
试试插入2个子窗体。
作者: hnyyly    时间: 2005-6-1 08:05
有没有具体的做法
作者: 淼漫    时间: 2005-6-1 08:12
在一个空白窗体的设计模式下,用插入子窗体/子报表向导,连插2个。
作者: hnyyly    时间: 2005-6-1 08:21
就算是连插两个子窗体,但子窗体共用的数据表只一个呀,我的意思是想两个数据表,表名不一样,但两个表的数据是同时更新的
作者: 海狸先生    时间: 2005-6-1 15:54
以下是引用hnyyly在2005-6-1 0:21:00的发言:

就算是连插两个子窗体,但子窗体共用的数据表只一个呀,我的意思是想两个数据表,表名不一样,但两个表的数据是同时更新的



不同子窗体的数据源可以不同
作者: hnyyly    时间: 2005-6-1 16:31
海狸先生,我连插两个窗体进去,但我输入数据只能对一个窗体输入呀,那两个数据源怎么会同时有数据呢?请告知,谢谢!
作者: 海狸先生    时间: 2005-6-1 16:36
在窗体更新后事件中写语句,只是我不明白,为什么要两个表同时更新?
作者: hnyyly    时间: 2005-6-1 16:45
海狸先生,是这么回事,我设计一个车辆数据库,分两个部份,一个是车辆录入,一个是稽查查询。车辆录入是整个数据的输入,但稽查查询只能看到表中的一部份内容,不能看到全部。如果我用数据导入的话,那么一个整表的数据都会导入到稽查查询表中,那么安全性就比较差。
作者: zmith    时间: 2005-6-1 16:48
是不是在一个窗体中引用两个表中的数据当数据源呀,如果是的话我也碰到过。可以解决的。
作者: hnyyly    时间: 2005-6-1 17:01
不是这样的,我是想在一个窗体内输入数据,这个数据同时进入两个数据源。一个数据源是管理员用,一个数据源是导出给稽查查询用。
作者: 海狸先生    时间: 2005-6-1 17:04
我想选择查询应该适合你例如 有 一表 tbl 有 a,b,c,d,e,f 5个字段,但是你可以用select a,b,c from tbl 来显示3个字段
作者: hnyyly    时间: 2005-6-1 17:16
这个我用过,但如果这样稽查员就可以直接从表中就可以看到祥细内容,而我又不想让部份数据内容让稽查员看到。
作者: 海狸先生    时间: 2005-6-1 17:33
我这只是举个例子,你可以选择想让他看到的数据
作者: hnyyly    时间: 2005-6-1 17:35
在窗体里面可以设置查询,可以让他只看到想看的东西,但他在表里面可以看到全部内容呀,因为窗体数据全部来自于表。
作者: 海狸先生    时间: 2005-6-1 18:08
窗体数据可以来自查询
作者: hnyyly    时间: 2005-6-1 18:20
但查询的数据也是来自表呀,表里面有所有的数据,但我又不想把表里面的数据全部公开。
作者: 海狸先生    时间: 2005-6-1 18:31
你是说要把表交给别人吗?select a,b,c into 临时表 from 原表
作者: hnyyly    时间: 2005-6-1 18:46
是把表交给别人,select a,b,c into 临时表 from 原表,有没有具体操作办法。
作者: 海狸先生    时间: 2005-6-1 19:26
具体???这就是具体的语句啊建一个查询,用这个格式把你的实际情况套进去就行了
作者: swx    时间: 2005-6-1 19:33
我是说,即使您将数据另存到另一个表中,人家直接打开您管理员用的表,不也一样能够看到数据?因此您的思路是不对的。数据是否有权限查看或修改,是通过安全工作组来设置的。您可在稽查表中保存只有他们看的字段,在管理员表中保存剩余的字段。两个表通过关键字建立一对一的关系。如表tbl 有 a,b,c,d,e,f 5个字段,稽查表的字段为:a、b、c    管理员的字段为a、d、e、f 其中a为两表关联的字段 。在稽查窗体的数据来源于稽查表,而管理员窗体的数据来源于关联两基础表的查询,由于建立的一对一的关系,数据能分别存到各自的表中。在工作组的权限设置上,稽查员只有阅读稽查表和稽查窗体数据的权限,而管理员表具有所有的权限。
作者: hnyyly    时间: 2005-6-1 21:44
具体内容是这样的,办公室电脑有一个主数据库,稽查所用的是一台笔记本,每天工作人员从主数据库将表中的数据导入到笔记本上,而表中的数据是完全的,稽查的只需要其中的一部份。
作者: Trynew    时间: 2005-6-1 22:40
标题: Re
[attach]10905[/attach]

简单一点,在窗体的更新后事件中执行一次删除查询,一次追加查询:

Private Sub Form_AfterUpdate()

    CurrentDb().Execute "Delete * from 新表"

    CurrentDb().Execute "INSERT INTO 新表 ( a, c, d, e ) SELECT a, c,d,e FROM 原表;"

End Sub




作者: hnyyly    时间: 2005-6-2 05:06
很实用,我就是不知道具体操作办法 ,也就是这个语句加到哪个地方,请告知,谢谢!
作者: 海狸先生    时间: 2005-6-2 05:08
呵呵,大家都给出这么多信息了,为何就是不肯去学习一下呢?把你的文件上传,我给你修改一下吧
作者: hnyyly    时间: 2005-6-2 05:47
不是不学,我对语句特别没感觉,不会用,呵呵
作者: hnyyly    时间: 2005-6-2 05:49
怎么上传文件呀?
作者: hnyyly    时间: 2005-6-2 05:55
Option Compare Database

Option Explicit

Function dhAge(dtmBD As Date, Optional dtmDate As Date = 0) As Integer

If dtmDate = 0 Then dtmDate = Date

dhAge = DateDiff("yyyy", dtmBD, dtmDate) + (dtmDate < DateSerial(Year(dtmDate), Month(dtmBD), Day(dtmBD)))

End Function

上面是我原来里面的东西,需不需要删除呀,谢谢
作者: hnyyly    时间: 2005-6-2 06:12
CurrentDb().Execute "INSERT INTO 新表 ( a, c, d, e ) SELECT a, c,d,e FROM 原表;"提示出错呀
作者: hnyyly    时间: 2005-6-2 06:18
运行错误3134
作者: hnyyly    时间: 2005-6-2 06:41
Private Sub Form_AfterUpdate()

CurrentDb().Execute "Delete * from 稽查征费"

CurrentDb().Execute "INSERT INTO 稽查征费 ( 年度, A(运), 月份, 业户, 车, 号, 道路运输证号, 备注, 审验记录 ) SELECT 年度, A(运), 月份, 业户, 车, 号, 道路运输证号, 备注, 审验记录 FROM 征费;"

End Sub提示       CurrentDb().Execute "INSERT INTO 稽查征费 ( 年度, A(运), 月份, 业户, 车, 号, 道路运输证号, 备注, 审验记录 ) SELECT 年度, A(运), 月份, 业户, 车, 号, 道路运输证号, 备注, 审验记录 FROM 征费;"出错,可以告知我是什么原因吗,谢谢


作者: 海狸先生    时间: 2005-6-2 16:04
上传文件,不要用快速回复,点上面的回复贴子
作者: Trynew    时间: 2005-6-2 17:08
A(运):字段名最好不要用空格、括号等特殊符号,可以用下画连线符、中文全角括号代替,否则容易出错。如仍有错,上传文件看看。
作者: hnyyly    时间: 2005-6-3 03:12
这个语句可以完成一个窗体输入两个表都有数据保存,但其中有一个问题,就是稽查征费里面的数据总是长一条,也就是窗体输入的最后的数据不能保存进去,请教
作者: fjwen    时间: 2007-1-21 17:58
学习了.




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