我在Access中有一个子表单:
CopyNo是一个组合框,可让我从MovieCopies表中进行选择。当我选择一个时,我希望标题字段显示与该副本的电影ID相关联的正确电影标题。我也想要显示格式。当我从DaysRented组合框中选择时,如果我选择1并且电影是新的,我希望它显示价格,如果它是常规的3天显示正确的价格等。
我只是不确定如何为组合框提供逻辑。
如果有人能指出我在Access 2007中如何做这种事情的正确方向,我真的很感激。
由于
答案 0 :(得分:2)
这样的事情:
Private Sub cboCopyNo_AfterUpdate()
If Nz(Me.cboCopyNo, "") <> "" Then
Me.txtTitle = DLookup("Title", "MovieMaster", "MovieID = " & Me.cboCopyNo)
End If
End Sub
Private Sub cboDaysRented_AfterUpdate()
If Nz(Me.cboDaysRented, 0) > 0 Then
Dim strType as String
strType = DLookup("[Type]", "MovieMaster", "MovieID = " & Me.cboCopyNo)
If Me.cboDaysRented = 1 Then
Me.txtPrice = DLookup("Price1Day", "Price", "[Type] = '" & strType & "'")
Else
Me.txtPrice = DLookup("Price3Day", "Price", "[Type] = '" & strType & "'")
End If
End If
End Sub
情侣笔记。某些字段名称是某些数据库中的保留字,例如“类型”。我强烈建议您尝试使用Access或SQL Server中不是保留字的字段名称。
DLookups不一定是查找数据的最快方式,但可能足够快,你想在这里做什么。有时我创建自己的DAO记录集并查找我想要的值而不是使用DLookup。它基本上就像编写自己的DLookup函数一样。
DLookup使用SQL语言,因此第三个参数WHERE子句中的语法需要与SQL匹配。如果WHERE子句中的字段是text / string,则需要在值的任一侧使用单引号(如上面strType变量所示)。如果是数字字段,则不需要引号。如果是约会,你需要哈希标志(#)。