【发布时间】:2013-11-22 18:21:30
【问题描述】:
我有一个包含几个简单字段的表。交易 ID(使用自动编号填充的 TID)、日期、交易状态(整数)、状态和备注。状态是从另一个表中提取其值的查找字段。它显示状态的文本,但将状态 ID 存储为整数。 Notes 是一个备注字段。通常当我们有一定的状态时,Note字段一般都有相同的文字。它确实经常发生变化,以至于我无法链接状态和注释。但是,我希望此表的表单中的 Notes 字段能够根据添加新 TID 时选择的状态自动填充最常见的条目。举个例子吧。
我创建了一个新的 TID。我输入日期,然后输入状态。在我离开状态控件的这个时间点,我希望注释字段自动填充基于状态的默认值。这是我创建的代码,但它不起作用。我尝试用“132”和状态文本“Closed”替换案例编号,即案例 132,但它们都不起作用。任何帮助都会有所帮助。
Private Sub Status_Ctrl_LostFocus()
Dim NoteDetail As String
Dim OffStat As Integer
OffStat = Me.Status_Ctrl.Value
If Me!Details = Null Or Me!Details = "" Then
Select Case OffStat
Case 132 'Offer Closed
NoteDetail = "Offer Closed."
Case 133 'Offer Failed
If Me.Parent!EMCust_Ctrl = 32 Then
NoteDetail = "Offer rejected. EM returned to Buyer."
Else
NoteDetail = "Offer rejected."
End If
Case 134 'Offer Accepted
NoteDetail = "Offer Accepted."
Case 164 'Offer Presented
NoteDetail = "Offer Presented. EM held for acceptance."
End Select
With Me!Details_Ctrl
.Value = NoteDetail
.SetFocus
End With
End If
End Sub
【问题讨论】:
-
代码是否属于select case语句?根据 if 语句,它看起来可能不会去那里。
-
在
OffStat =行上设置一个断点,并使用F8键逐行执行代码。这种情况是可疑的:If Me!Details = Null... 如果您想检查Me!Detailsis 是否为 Null,请使用If IsNull(Me!Details)。 (它永远不会 等于 到 Null,因为没有任何东西可以 等于 到 Null,即使是另一个 Null。) -
谢谢 HansUp。 Null 给我带来了问题。它现在工作得很好。你能把你的帖子作为我问题的答案,这样我就可以给你回答这个问题了?
标签: ms-access ms-access-2007 vba