Microsoft Access 掲示板

views
4 フォロー
6,283 件中 6,281 から 6,283 までを表示しています。
1

鉄血さん、こんばんは。

T_本棚T_読者ですが、主キー同士(登録番号)で結合されています。
このような場合は、2つのテーブルの関係は一対一関係といいます。
一対一関係のデータは、テーブルを分けないで一つにするのがデータベース設計のセオリーです。(下記リンクを参照してください。)

一対一関係のテーブル設計 - hatena chips

つまり、T_本棚未読フィールドを追加すればいいだけです。
そうすれば、何も悩むことなく、本を新規追加すれば、未読は自動で規定値のTrue(チェック入り)になります。

2

shigeさん、移設第一号の質問、ありがとうございます。

私も法律関係には詳しくないのであまり的確なアドバイスは難しいと思いますが、テーブル設計は画像のものでよくできていると思われます。あとは、いろいろ、テスト入力などして問題点をあらいだせばいいかと思います。

ちなみに、コード部分ですが、前に``` (トリプルバッククォート)を挿入するとコードブロックになり読みやすくなりますので、編集ボタンから修正してみてください。バッククォートは Shift+@ で入力できます。
さらに前のものは、```js とすると色がつきますので、より見やすくなります。

下記のようになります。

Function tuki(day1, day2 As Date)

    ’使い方 tuki([入社日],[退社日])  tuki([入社日],date())
    Dim i As Long

    If (Format(day1, "dd") < Format(day2, "dd")) Then
        i = DateDiff("m", day1, day2)
    Else
        i = DateDiff("m", day1, day2) - 1
    End If

    tuki = i
End Function
1
shige 2019/03/06 (水) 15:01:52 d1a4b@b63e8

自己解決
月数にすれば簡単でしたね(汗

Function tuki(day1, day2 As Date)

’使い方 tuki([入社日],[退社日])  tuki([入社日],date())
Dim i As Long

If (Format(day1, "dd") < Format(day2, "dd")) Then
    i = DateDiff("m", day1, day2)
Else
    i = DateDiff("m", day1, day2) - 1
End If

tuki = i
End Function

テーブル設計は添付の通りに検討中ですが...画像1