2012-03-27 45 views
0

我在訪問子形式: enter image description here enter image description here將邏輯添加到Access中的子表單中?

的CopyNo是一個組合框,讓我從MovieCopies表中選擇。當我選擇一個時,我希望標題字段顯示與該副本的電影ID關聯的正確電影標題。我也想要顯示的格式。當我從DaysRented組合框中選擇,如果我選擇1並且電影是新的,我希望它顯示價格,如果它是正常的3天顯示正確的價格等。

我只是不知道如何給邏輯框提供邏輯。

如果任何人都可以指出我如何在Access 2007中做這種事情的正確方向,我會非常感激。

感謝

回答

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子句中的字段是文本/字符串,則需要在值的任一側使用單引號(如上面圍繞strType變量所示)。如果是數字字段,則不需要引號。如果這是一個日期,你需要散列符號(#)。