0

People と Logs という 2 つのテーブルを含むデータベースがあります。

個人情報を表示し、さらに関連するログ レコードを含む詳細ページを作成しました。これらはすべて、カスタム コーディングなどではなく、標準の詳細ページを追加することによって行われました。

ユーザーが緑色の + をクリックしてその人のログに行を追加すると、いくつかの列を自動入力したいと考えています。これを行うために、Log クラスを開き、以下を追加しました。

Private Sub Log_Created()
     Me.Create_Date = Date.Now
End Sub

これはうまくいきます。しかし、その人物に関連付けられたカード番号も取得したいと考えています。最終的に、私のコードは次のようになります (疑似):

Private Sub Log_Created()
     Me.Create_Date = Date.Now
     Me.CardNumber = SelectedPerson.CardNumber
End Sub

しかし、コードでこれを達成する方法が正確にはわかりませんか?

4

1 に答える 1

4

非正規化されたデータ (http://en.wikipedia.org/wiki/Database_normalization) を避けるために、このようなデータ モデルの設定は避けたいと思います。私はのアプローチを取るだろう

Person (Class)
 - Name
 - Address
 - ...
 - Cards (Collection of Card)

Card (Class)
 - CardNumber
 - Person 
 - Logs (Collection of Log)

Log (Class)
 - CreateDate
 - Card 

これにより、1 人あたり複数のカードを使用できるようになります。あなたがやろうとしていることを本当にやりたいのなら、あなたは正しい道を進んでいます。Person と Log (1 人のログに対して複数のログ) の間に関係があることを確認してください。コードは次のようになります。

Private Sub Log_Created()
     Me.Create_Date = Date.Now
     Me.CardNumber = Person.CardNumber
End Sub
于 2011-08-15T20:48:33.170 に答える