何か:
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サーバーで予約語ではないフィールド名を使用しようとすることをお勧めします。
DLookupsは必ずしもデータを検索する最速の方法ではありませんが、ここでやろうとしていることに対して十分速いでしょう。ときどき自分のDAOレコードセットを作成し、DLookupを使用するのではなく、必要な値を検索します。これは基本的に独自のDLookup関数を書くのと同じです。
DLookupはSQL言語を使用しているため、WHERE句の第3引数の構文はSQLと一致する必要があります。 WHERE句のフィールドがtext/stringの場合は、値の両側に単一引用符を使用する必要があります(strType変数の上に示したように)。数字フィールドの場合は、引用符は必要ありません。日付の場合は、ハッシュ記号(#)が必要です。
出典
2012-03-27 16:09:02
HK1