很抱歉,但对于这样的事情,我不是很有经验。
我有一个名为“Measure Table”的表,其中包含“ID”,“Proxy”和“ProxyID”字段。
我根据此表创建了一个表单。 ID是从表中预先填充的标签。代理是一个下拉菜单,其中包含选项“For”或“From”。 ProxyID包含一个与ID相同的下拉列表。
我希望用户转到表单中的特定记录(例如ID:I800),从Proxy下拉列表中选择“For”,然后选择ProxyID(比如说L800)。对于L800的记录,我希望它自动将代理更改为“From”,将ProxyID更改为I800。
这可以在Access中使用吗? 非常感谢您提供的任何帮助
以下是我想要发生的事情的视觉效果:
我希望在更新之前表格看起来像这样(当用户选择“For”和“L800”时):
1 I800 For L800
2 L800
然后该表自动更新为:
1 I800 For L800
2 L800来自I800
答案 0 :(得分:1)
好的,这是解决当前问题需要做的事情的要点(更新另一个表中的相应行。
只需向表单的AfterUpdate事件添加一个事件处理程序,即可对另一行执行更新。代码看起来应该与此非常相似......
Private Sub Form_AfterUpdate()
Dim RelatedID As String
Dim Proxy As String
If (UCase(Me.Form!Proxy) = "FOR") Then
RelatedID = Me.Form!ProxyID
CurrentID = Me.Form!ID
DoCmd.RunSQL ("UPDATE [Measure Table] SET ProxyID='" & CurrentID & "', Proxy='From' WHERE ID='" & RelatedID & "'")
End If
End Sub
警告:
正如我在评论中提到的,这种数据结构是一个非常糟糕的主意,并会创造出很多额外的工作,您可以根据您指定的,当然这种设计的问题隐含规则维护数据的完整性。我意识到你有一个现有的数据库需要处理,但坦率地说,修复数据库设计可能比从长远来看维护这个数据库要少。
您没有询问的其他一些注意事项,但需要处理: