Office中国论坛/Access中国论坛

标题: 包含2个表字段的存储过程是不是不能编辑数据? [打印本页]

作者: 宿命的风    时间: 2007-1-11 06:37
标题: 包含2个表字段的存储过程是不是不能编辑数据?
最近在将公司的数据库从MDB升级到ADP,遇到以下问题:

表一: 出口操作

表二:出口费用

两表通过"定舱ID"字段连接,一对一的关系

我希望通过一个带有参数的存储过程把符合一定条件的记录(包含两个表中的部分字段)显示在子窗体中,并想修改表二中的数据,但是子窗体的数据无法修改.

在MDB中,这种关系是可以修改的, 是不是ADP中就不可以了呢?

有什么解决办法呢? 希望各位指教! 谢谢!
[attach]22572[/attach]


[此贴子已经被作者于2007-1-10 22:38:55编辑过]


作者: wuaza    时间: 2007-1-12 05:41
你定义一下主键看看,再不行可能真的是不行的。
作者: 宿命的风    时间: 2007-1-12 06:04
[attach]22599[/attach]

现在通过以上方法,问题基本得以解决.

帮助中的解释:

UniqueTable 属性

参阅应用于[url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acproUniqueTable.htm#example]示例[/url]特性

指定在下列情况下可以更新的表:



String 型,可读写。

expression.UniqueTable

expression      必需。返回 Form 对象的表达式。

说明

UniqueTable 属性是字符串表达式,表示可以更新的唯一表。

可以使用属性表Visual Basic 来设置该属性。

UniqueTable 属性标识了联接的“多”表。如果没有设置 UniqueTable 属性,则与视图、包含联接的存储过程或 SQL 字符串绑定的窗体是只读的。同时,对于联接,由 View.Open 或 StoredProc.Run 产生的数据表是只读的(因为无法设置 UniqueTable 属性)。只要设置了 UniqueTable 属性,则只有该表中的字段是可更新的,只能对该表进行插入和删除。

为了使记录集成为可更新的快照,以联接光标为基础的窗体或数据访问页必须有 UniqueTable 属性字符串。唯一表是基础查询中的表,其中的行与光标的行之间是一一对应的关系。在简单的“病人-医生”联接中,“病人”是唯一表,因为光标的每一行都和“病人”表的一行对应。注意“多对多”联接没有有效的 UniqueTable 属性,因此该属性是只读的。对于数据访问页,UniqueTable 属性将表示为 RecordsetDef 对象。UniqueTable 属性的目的在于:

实施正确的可更新性语义:

<UL>
  • “唯一表”的键列必须位于形成光标的查询的选择列表中,甚至对 SQL Server 也是如此。(有关其他数据源,请参阅 ResyncCommand 属性主题中的“说明”部分。)


  • 在联接光标中
    作者: wuaza    时间: 2007-1-12 22:43
    学习一下,这个以前还真的不知道




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