在Access中向子表单添加逻辑?

时间:2012-03-27 15:53:11

标签: ms-access ms-access-2007 access-vba

我在Access中有一个子表单: enter image description here enter image description here

CopyNo是一个组合框,可让我从MovieCopies表中进行选择。当我选择一个时,我希望标题字段显示与该副本的电影ID相关联的正确电影标题。我也想要显示格式。当我从DaysRented组合框中选择时,如果我选择1并且电影是新的,我希望它显示价格,如果它是常规的3天显示正确的价格等。

我只是不确定如何为组合框提供逻辑。

如果有人能指出我在Access 2007中如何做这种事情的正确方向,我真的很感激。

由于

1 个答案:

答案 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变量所示)。如果是数字字段,则不需要引号。如果是约会,你需要哈希标志(#)。