Microsoft Access 掲示板

追加クエリのメッセージがうっとうしい / 1

12 コメント
views
4 フォロー
1
hiroton 2020/09/01 (火) 11:58:25 e6ef5@f966d

メッセージの内容が不安なら追加クエリできちんと追加できるデータだけに絞り込めばいいでしょう

メッセージそのものを出したくないのならメッセージ表示の設定を切り替えればいいです
オブジェクトの削除とアクションクエリの確認メッセージを有効または無効にする

通報 ...
  • 2
    トマト 2020/09/01 (火) 12:50:40 0029a@1c915 >> 1

    早速のご回答ありがとうございます。
    ①>メッセージの内容が不安なら追加クエリできちんと追加できるデータだけに絞り込めばいいでしょう

    おっしゃるとおりで、そうしたいと思っていたのですがうまくできずインデックスに頼った次第です。
    追加クエリ「案件ID」フィールドの抽出行に「<>[T_送付]![送付用案件ID]」と入れたところパラメータの入力ボックスが表示されました。それ以外にも、クエリの上の画面に2つのテーブルを表示させ、外部の3パターンでつないでみたり色々試してみたのですが、望みの結果が得られませんでした…
    どうすれば案件IDが重複しないように追加クエリを実行することができるのでしょうか。

    ②追加の質問ですみません。今月データを抽出する際、日付の入ったフィールドのクエリの抽出行に「Like Left(Date(),7) & "*"」と記載しても「Left(Date(),7)」と記載しても結果が同じで不思議に思っています・・なぜなのでしょうか。

    3
    トマト 2020/09/01 (火) 12:52:50 0029a@1c915 >> 2

    ※補足
    >2つのテーブル
    案件テーブルと送付テーブルになります。
    >外部の3パターン
    結合の3パターンの間違いです。

  • 6
    hiroton 2020/09/01 (火) 14:02:37 e6ef5@f966d >> 1

    とりあえず

    ②追加の質問ですみません。

    のほうへの回答ですが、Date()は今日の日付を表す日付型のデータですね。めんどくさい言い方をすると、1899/12/31を1として、今日まで1日ごとに1を加算した数値を返します。これを何らかの方法で日付として表示すると2020/09/01のように画面上では見えるわけです

    Left()文字列に対して左からn文字を取り出す関数ですね。Date()文字列ではないので自動の型変換が起こります
    結果どうなるかというと、
    Left(Date(),7)Left("44075",7)(Date()=2020/09/01の場合)として処理されます。クエリの結果が同じになるのはたまたまですが、「今月のデータを抽出したい」という要求を満たせないのは一目両全ですね

    日付型は人間にわかりやすい見た目をしていても内部では数値で扱われているということを覚えましょう

    日付型のフィールドで具体的に「今月」で抽出するなら

    >=DateSerial(Year(Date()),Month(Date()),1) And <DateSerial(Year(Date()),Month(Date())+1,1)
    

    と、期間指定で抽出する形になります

    7
    トマト 2020/09/01 (火) 14:25:20 0029a@1c915 >> 6

    よく理解できました。ウッカリしておりました…ありがとうございます。