空室情報作成

Anonymous
2017-03-16T20:36:45+00:00

アクセス2016 で空室管理をいたしたいと思います。

設定は 部屋名、入居日、退室日です。どのようにすれば、部屋名に空室になった部屋名を表示するようにしたいのですが。よろしくお願いいたします。

Microsoft 365 と Office | Access | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

45 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-03-24T06:39:02+00:00

    返信ありがとうございます。

    岸からのメッセージをコピーして設定いたしました。

    同じく、「SOLステートメントの後に文字が見つかりました。」と表示され、データが開きません。おかしく思い自ら入力いたしましたが、同じく、「SOLステートメントの後に文字が見つかりました。」の表示が出ましてデータが開きません。

    ほかの何か原因があると思いますが、私にはわかりません。

    ほかの原因をお教え願えればありがたいのですが。

    入力に問題があるのかもしれません。

    入力の注意点をお教え願えれば幸いです。

    よろしくお願い申し上げます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2017-03-24T00:52:30+00:00

    > SQLステートメントを記入いたしまして

    > ホーム~→表示→データシートビューを開こうといたしましたが、

    > 「SOLステートメントの後に文字が見つかりました。」と表示されて

    > データシートビュー(H)が開きません。

    ;(セミコロン)の後ろに何か文字列を挿入されてはいないでしょうか。

    例えば全角スペースとか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2017-03-24T00:34:21+00:00

    ありがとうございました。

    SQLステートメントを記入いたしましてホーム~→表示→データシートビューを開こうといたしましたが、「SOLステートメントの後に文字が見つかりました。」と表示されてデータシートビュー(H)が開きません。どのようにしたらよいのでしょうか。お教えください。

    よろしくお願い申し上げます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2017-03-23T04:34:53+00:00

    ・テーブル[入居者マスタ]において、

     フィールド[部屋ID]と[入居日]の値の組み合わせは

     必ず一意となり、他のレコードと競合することはない。

     ( 1 つの部屋について、入居日が別の入居者と重なることはない)

    ・フィールド[部屋ID]の値が同じであるグループにおいて、

     [入居日]と[退室日]によって示されるそれぞれの入居期間が、

     他のレコードのそれと競合/矛盾することはない。

     (例えば「 2013/04/01 から 2016/03/31 までの間に

      A さんが 101 号室に入居していた」という(正しい)履歴に対し、

      「B さんが 101 号室に 2015/04/01 から入居中である」という

      (前者と矛盾する)履歴が登録されるような状態になることが

      あり得ない仕組みになっている)

    ・(上記と同様の仕組みにより)

     フィールド[部屋ID]の値が同じであるグループにおいて、

     [退室日]の値が Null となり得るレコードは、

     [入居日]の値が最大であるレコード 1 件

     (そのグループにおける最後の入居者 1 人)のみ

     となるようにしている。

    ・テーブル[入居者マスタ]のフィールド[入居日]に、

     システム日付より未来の日付(入居予定日)が入力されている

     (事前の入居予約をデータとして登録する)ケースは考慮しない。

    ・テーブル[入居者マスタ]のフィールド[退室日]に、

     システム日付より未来の日付(退室予定日)が入力されている

     (事前の解約申請をデータとして登録する)ケースは考慮しない。

     単純に、[退室日]の値が Null であるレコードに

     記録されている入居者を「各部屋における現在入居中の住人」とみなす。

    とりあえず、以上のような前提であると仮定します。

    1. [入居者マスタ]を元に以下のような選択クエリ

       (以下[Q_現在入居者])を作成する。

    ( SQL ビュー)


    SELECT [入居者マスタ].*

    FROM [入居者マスタ]

    WHERE NOT EXISTS (SELECT tmp.*

                      FROM [入居者マスタ] tmp

                      WHERE tmp.[部屋ID] = [入居者マスタ].[部屋ID]

                        AND tmp.[入居日] > [入居者マスタ].[入居日])

      AND [入居者マスタ].[退室日] IS NULL;


    1. 更に以下のような選択クエリを作成する。

    ( SQL ビュー)


    SELECT [部屋マスタ].[マンションID],

           [マンションマスタ].[マンション名],

           [部屋マスタ].[部屋ID],

           [部屋マスタ].[部屋名],

           [Q_現在入居者].[入居者番号],

           [Q_現在入居者].[入居者氏名],

           [Q_現在入居者].[入居日],

           [Q_現在入居者].[退室日],

           IIf([Q_現在入居者].[入居者番号] IS NULL,

               "空室",

               "入居中") AS [入居状況]

    FROM ([部屋マスタ]

          INNER JOIN [マンションマスタ]

          ON [部屋マスタ].[マンションID] = [マンションマスタ].[マンションID])

    LEFT JOIN [Q_現在入居者]

    ON [部屋マスタ].[部屋ID] = [Q_現在入居者].[部屋ID]

    ORDER BY [部屋マスタ].[マンションID],

             [部屋マスタ].[部屋ID];


    基本的には、以上のような手順で

    各クエリを作成なさればよろしいでしょう。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2017-03-22T09:04:51+00:00

    > 部屋マスタはマンションマスタの従属テーブルです。

    > マンションマスター部屋マスター入居者マスタで

    > 部屋マスタの中にマンションIDを作成し

    > マンションマスタのマンションIDと

    > 部屋マスタの中に作成したマンションIDセリレーションしています。

    > 同じく、入居者マスタの中に作成した部屋マスタIDと

    > 部屋マスタの部屋マスタIDをつなげております。

    ・テーブル[マンションマスタ]の主キーは、

     数値型のフィールド[マンションID]である。

    ・テーブル[部屋マスタ]の主キーは、

     数値型のフィールド[部屋ID]である。

    ・テーブル[部屋マスタ]には、親テーブル[マンションマスタ]と結合するための

     外部キーとなる数値型のフィールド[マンションID]が定義されている。

     ([マンションマスタ]と[部屋マスタ]は 1対多 の関係にある)

    ・テーブル[入居者マスタ]の主キーは、

     数値型のフィールド[入居者番号]である。

    ・テーブル[入居者マスタ]には、親テーブル[部屋マスタ]と結合するための

     外部キーとなる数値型のフィールド[部屋ID]が定義されている。

     ([部屋マスタ]と[入居者マスタ]は 1対多 の関係にある)

    各テーブル/フィールドの名前の表記揺れを無視するならば

    以上のようなテーブル構成になっているのではないかと

    思われますが、間違いないでしょうか。

    返信ありがとうございます。

    上記で間違いありません。

    空室管理を宜しくお願い申し上げます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません