空室情報作成

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

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

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

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

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

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

45 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-03-29T06:12:28+00:00

    > 契約更新は2年毎に行います。

    とりあえず、契約更新に関するスケジューリングや手続きの流れを

    (箇条書きにするなどして)具体的に明記して下さい。

    特に**「契約を既に更新したか、まだしていないか(しなかったか)」**や

    **「いつ契約更新(あるいは解約)の手続きを行なったか」**を

    どうやって把握するのかについての説明が不足しています。

    > この契約更新の三か月前、二か月前、当月と移行するように設定したい

    例えば、

    1. [入居者マスタ]から「現在入居中」扱いになっている

       入居者のレコードを抽出して、

    1. それらの[入居年月日]とシステム日付を元に

       それぞれの入居者の**[次回の契約更新予定日]**を求めて、

    1. 更にシステム日付とそれらの[次回の契約更新予定日]を元に

       「次回の契約更新予定日があと 3 ヶ月以内に迫っていて」 (←これは計算できる)、

       かつ

       **「その回の契約更新の手続きがまだ完了していない」者(←ここが分からん)**を抽出し、

    1. それらの入居者に対して何らかの通知を行なう

       (通知書や届出用書類を郵送または配布する等)、

    1. という作業(上記 1 ~ 4 )を毎月 1 回ずつ実施している。

    というようなことを具体的に明記して下さい。

    > 職業区分(入居者マスタ)

    > 職業区分は社会人か学生かを数字で社会人「1」、学生「3」を入力

    > 学生さんは特殊で更新日周辺の3月25日に更新を行うように周旋屋さんが決めております。

    「契約更新の対象者のうち、社会人である者」を抽出する作業/処理と

    「契約更新の対象者のうち、学生である者」を抽出する作業/処理とは

    それぞれ別々のものとして捉えられた方がよいでしょう。

    1 つのクエリでまとめて作り込もうとしたって、

    かえってややこしくなるだけです。

    あと、何かの表を記載されているようですが、

    列見出しがありませんので、それぞれ何の項目を

    示しているのかが不明です。

    > 入居年数: DateDiff("yyyy",[入居年月日],Now())

    現時点ではっきり申し上げられるのは、上記の式のままでは

    正しい入居年数は求められないということだけです。

    DateDiff 関数の第 1 引数 interval の渡された値が "yyyy" である場合、

    第 2 引数 Date1 及び 第 3 引数 Date2 にそれぞれ渡された

    日付の「年」の部分(だけ)の差が戻り値として返されます。

    例えば


    DateDiff("yyyy" ,#2017/12/31#, #2018/01/01#)


    という式を記述した場合、日数としての差は 1 日( 1 年未満)ですが、

    「年」の部分しか考慮されないので単純に 1 (年)が返されることになります。

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

    0 件のコメント コメントはありません
  2. Anonymous
    2017-03-28T10:17:19+00:00

    > 1番目のクエリの名前適当ではいけませんのでしょうか。

    Access におけるオブジェクトの命名規則に違反しない限りは

    適当につけていただいてもそれはそれで構いませんが、

    既に指摘させていただいた通り、その「適用につけた」

    1 つめのクエリの名前を 2 つめのクエリの中で

    正しく記述出来ていないのは、命名規則以前の問題であるとは思います。

    そもそも、当初の投稿からここまでのやりとりにおいて、

    吉村博文さんご自身がオブジェクトやフィールドの名前の

    表記を統一されておらず、たびたび変更されておられます。

    ([アパートマスタテーブル]が[マンションマスタ]になっていたり、

     [入居日]が[入居年月日]になっていたりするなど)

    それがあなたご自身の何らかの都合によるものなのか、

    単語や用語や固有名詞の統一表記というものに対して無頓着なのか、

    単にキーボード入力が苦手なだけなのかは定かではありませんが

    (本題とは関係がないので理由や原因はどうでもいいですが)、

    「固有名詞の表記が統一されていない(揺れがある)」状況は、

    第三者に対して説明をする上で、正直望ましいものであるとは言えません。

    上記の例で言えば、[アパートマスタテーブル]と[マンションマスタ]は

    それぞれ別個のテーブルであるのか、それとも同一のテーブルを

    指しているのか、その判別や類推という作業を閲覧者に強いることに

    なります。

    人間相手ですらそういう困った状況になるのですから、

    Access というプログラム相手であれば、尚のこと

    「呼び出したいオブジェクトやフィールドの名前(識別子)は正しく記述すること」

    が求められます。

    それこそ、名前の記述をたった 1 文字間違えただけで

    (例えば _(アンダーバー)を -(ハイフン)と打ち間違えるだけで)、

    そのオブジェクト/フィールドを識別出来なくなるのが

    プログラムというものなのです。

    こちらと致しましては、そういったことを全て踏まえ、

    使用するテーブルの構成やそれぞれの定義内容、

    各レコードの扱いなどについてたびたび確認させていただいた上で

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

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

    と記述したわけですから、実際にその通りの名前をつけていただければ、

    とりあえず当初の目的は達成されるかと思います。

    そこから敢えて「適当につけた名前」になさりたい、

    ということであれば、その名前の読み換え/書き換えは

    ご自身の裁量によって行なっていただくしかありません。

    少なくとも、「実際に(適当に)つけたクエリの名前」が

    具体的にどのようなものであるかが明示されない限り、

    現時点ではこれ以上お答えのしようがありません。  

    ありがとうございました。ご指摘のクエリの名前を変えて・起動しましたところ

    起動いたしました。長きにわたりご指導いただきありがとうございました。

    室管理で丁寧な御教示ありがとうございました。

    甘えまして申し訳ないですが。契約更新の設定で頭を悩ましております。

    契約更新は2年毎に行います。

    学生さんは特殊で更新日周辺の3月25日に更新を行うように周旋屋さんが決めております。

    この契約更新の三か月前、二か月前、当月と移行するように設定したいのですがよろしくお狙い申し上げます

     

    2017/10/01 2017/08/01 7.5
    2017/09/23 6.5
    2017/03/28 2017/01/28 6 2017/03/28
    2017/12/15 2017/10/15 6
    2017/09/29 2017/07/29 3
    2017/03/25 2017/01/25 2.5
    2017/02/19 2016/12/19 0
    2017/07/26 2017/05/26 4
    2017/02/13 2016/12/13 1
    2017/05/01 2017/03/01 1.5
    2017/05/28 2017/03/28 1 2017/05/28
    2017/04/01 2017/02/01 0.5
    2017/05/10 2017/03/10 0.5
    2017/08/22 2017/06/22 0.5
    2017/06/18 2017/04/18 0.5

     

    部屋番号(入居者マスタ) 室名(入居者マスタ) 入居者氏名(入居者マスタ)、入居年月日(入居者マスタ)

     職業区分(入居者マスタ) 職業区分は社会人か学生かを数字で社会人「1」、学生「3」を入力、マンションマスタ(マンションID)と部屋番号マスタ(マンションマスタID)をリレーション、部屋番号マスタ(部屋番号ID)と入居者マスタ(部屋番号ID)でリレーションしています。契約更新クエリでは

    入居年数: DateDiff("yyyy",[入居年月日],Now())

    更新年数: [入居年数]/2

    契約更新日: IIf([入居年数]=Int([入居年数]),DateAdd("yyyy",[入居年数],[入居年月日]),"")

    更新日: IIf([更新期間]=Fix([更新期間]),DateAdd("m",-2,[契約更新日]),"")

    今月更新日: IIf(Month([入居年月日])=Month(Now()),IIf([更新年数]=Int([更新年数]),[契約更新日],""),"")

    二か月前の更新日: IIf(Month([入居年月日])-2=Month(Now()),IIf([更新年数]=Int([更新年数]),[契約更新日],""),"")

    三か月前の更新日: IIf(Month([入居年月日])-3=Month(Now()),IIf([更新年数]=Int([更新年数]),[契約更新日],""),"")

    契約更新日2: IIf([学生入居年数]=Int([学生入居年数]),DateAdd("yyyy",[学生入居年数],[契約更新用]),"")

    で設定していますが上手く表示できません。幼児できるようによろしくお願い申し上げます。

     

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

    0 件のコメント コメントはありません
  3. Anonymous
    2017-03-28T05:22:45+00:00

    > 1番目のクエリの名前適当ではいけませんのでしょうか。

    Access におけるオブジェクトの命名規則に違反しない限りは

    適当につけていただいてもそれはそれで構いませんが、

    既に指摘させていただいた通り、その「適用につけた」

    1 つめのクエリの名前を 2 つめのクエリの中で

    正しく記述出来ていないのは、命名規則以前の問題であるとは思います。

    そもそも、当初の投稿からここまでのやりとりにおいて、

    吉村博文さんご自身がオブジェクトやフィールドの名前の

    表記を統一されておらず、たびたび変更されておられます。

    ([アパートマスタテーブル]が[マンションマスタ]になっていたり、

     [入居日]が[入居年月日]になっていたりするなど)

    それがあなたご自身の何らかの都合によるものなのか、

    単語や用語や固有名詞の統一表記というものに対して無頓着なのか、

    単にキーボード入力が苦手なだけなのかは定かではありませんが

    (本題とは関係がないので理由や原因はどうでもいいですが)、

    「固有名詞の表記が統一されていない(揺れがある)」状況は、

    第三者に対して説明をする上で、正直望ましいものであるとは言えません。

    上記の例で言えば、[アパートマスタテーブル]と[マンションマスタ]は

    それぞれ別個のテーブルであるのか、それとも同一のテーブルを

    指しているのか、その判別や類推という作業を閲覧者に強いることに

    なります。

    人間相手ですらそういう困った状況になるのですから、

    Access というプログラム相手であれば、尚のこと

    「呼び出したいオブジェクトやフィールドの名前(識別子)は正しく記述すること」

    が求められます。

    それこそ、名前の記述をたった 1 文字間違えただけで

    (例えば _(アンダーバー)を -(ハイフン)と打ち間違えるだけで)、

    そのオブジェクト/フィールドを識別出来なくなるのが

    プログラムというものなのです。

    こちらと致しましては、そういったことを全て踏まえ、

    使用するテーブルの構成やそれぞれの定義内容、

    各レコードの扱いなどについてたびたび確認させていただいた上で

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

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

    と記述したわけですから、実際にその通りの名前をつけていただければ、

    とりあえず当初の目的は達成されるかと思います。

    そこから敢えて「適当につけた名前」になさりたい、

    ということであれば、その名前の読み換え/書き換えは

    ご自身の裁量によって行なっていただくしかありません。

    少なくとも、「実際に(適当に)つけたクエリの名前」が

    具体的にどのようなものであるかが明示されない限り、

    現時点ではこれ以上お答えのしようがありません。

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

    0 件のコメント コメントはありません
  4. Anonymous
    2017-03-28T03:07:03+00:00

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

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

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

    返信さrました。構文をコピーして試みましたが、下記のメッセージが出ました。

    「入力テーブルまたはクエリ”Q-現在入居者”が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。」

    というメッセージです。どのようにしたらよいかわかりません。ご指導をよろしくお願いいたします。

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

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

    *[*部屋番号マスタ ].[ 部屋番号 ID],

    *[*部屋番号マスタ ].[ 室名 ],

    *[Q_*現在入居者 ].[ 入居者 ID],

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

    *[Q_*現在入居者 ].[ 入居年月日 ],

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

    *IIf([Q_*現在入居者 ].[ 入居者 ID] IS NULL,

    *"*空室 ",

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

    *FROM ([*部屋番号マスタ ]

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

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

    *LEFT JOIN [Q_*現在入居者 ]

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

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

    *[*部屋番号マスタ ].[ 部屋番号 ID];

    変死五ありがとうございます。

    1番目のクエリの名前適当ではいけませんのでしょうか。

    もしいけないのであればどのよう名前がよろしいのでしょうか。

    ご教示をお願い申し上げます。

    n

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

    0 件のコメント コメントはありません
  5. Anonymous
    2017-03-27T13:53:05+00:00

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

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

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

    返信さrました。構文をコピーして試みましたが、下記のメッセージが出ました。

    「入力テーブルまたはクエリ”Q-現在入居者”が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。」

    というメッセージです。どのようにしたらよいかわかりません。ご指導をよろしくお願いいたします。

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

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

    *[*部屋番号マスタ ].[ 部屋番号 ID],

    *[*部屋番号マスタ ].[ 室名 ],

    *[Q_*現在入居者 ].[ 入居者 ID],

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

    *[Q_*現在入居者 ].[ 入居年月日 ],

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

    *IIf([Q_*現在入居者 ].[ 入居者 ID] IS NULL,

    *"*空室 ",

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

    *FROM ([*部屋番号マスタ ]

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

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

    *LEFT JOIN [Q_*現在入居者 ]

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

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

    *[*部屋番号マスタ ].[ 部屋番号 ID];

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

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