我的应用程序是链接到SQL Server数据库的前端MS Access应用程序。
我在MS Access中有一个用于Orders
表的表单,还有一个子表单用于Orderslines
表
在OrdersLines
表中,有一个触发器用于计算总和(Quantity x unit price
(及更多。
";有趣的";在MS Access中,当我创建新订单时,我不能修改Orders
表,因为数据库和Access的数据不相同。
因此,当我在创建新订单的过程之后在MS Access中运行me.requery
时,me.requery
会将我发送到一个新记录。
当我修改此命令时,不会发生这种情况。
我尝试了很多方法,但我无法用新命令来保持当前记录。
任何想法都将受到的欢迎
尼科
解决此问题的最简单方法是向每个SQL Server表添加一个TimeStamp字段。
Microsoft Access可以通过TimeStamp字段跟踪SQL中记录的更改,并且它将自动从SQL Server中重新查询数据;数据已被另一用户"修改";消息
您添加的字段可以有任何您想要的名称(我使用名称tsJET,因为在这种情况下,此字段专门帮助JET/ACE引擎跟踪更改(,并且字段的类型是TimeStamp。您不必在任何查询或表单中包含此字段,它只需存在于表中即可。
请确保在将此字段添加到SQL Server表之后刷新表链接;参见";表的结构更改。
注意:不能修改"时间戳"字段中的数据。SQL Server会自动处理此问题。