Microsoft Access 掲示板

6,622 件中 3,761 から 3,800 までを表示しています。
2
aomini3298 2021/07/11 (日) 09:42:21

早速のご教示をいただきましてありがとうございました。

私ではコードの修正が難しかったため、詳しい方にもご協力いただきまして、
「or」対象の「Case 1」のコードを以下で確認してみたいと思います
。もし、お気づきの点などございましたらご指摘いただけましたら幸いです。

If Not IsNull(Me.総合検索) Then
            strFilter = strFilter & " and " & BuildCriteria("[質問]&[回
答]&[種別]" , dbtext,
            "(*" & Replace (StrConv(Me.総合検索, vbwide), " ", "* OR *") &
"*)")
        End If
2
hideki 2021/07/10 (土) 19:41:36 a106b@96514

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

1

無限ループですね。

Accessのテーブルを更新する場合、レコードセットを利用する方法と、更新クエリを利用する方法があります。

rsという変数がレコードセットの意味だとしたら、上記の異なる方法の解説サイトを理解せずに適当にくっつけた感じのコードですね。

とりあえず下記でどうでしょうか。

     Dim i As Long
     i = 2

     Do Until Cells(i, 1) = ""
         ’下のSQLがおかしかったので修正
         strSQL = "UPDATE MT_社員 SET 身長=" & Cells(i, 3) & " WHERE ID=" & Cells(i, 1).Value
         adoCn.Execute strSQL 'SQLを実行 1行ずつ実行する必要あり
         i = i + 1 '次の行に進める これがないと無限ループ
    Loop

    adoCn.Close
    Set adoCn = Nothing

End Sub
2

あるいは、営業目標の高さを、従業員数に関係なく一定にしたいということなら、
日付と営業目標をメインレポートにして、従業員をサブレポートして埋め込めばいいでしょう。

1

レコードソースのフィールド構成等、詳細が不明なのですが、
とりあえず下記が参考になりませんか。

グループ項目を垂直方向にセンタリングする
レポートで、大項目の「重複データ非表示」を「はい」にするとき、グループの一番上に表示されますが、垂直方向の真ん中に表示したい。 AccessClubの初級者掲示板の レポートで表示位置を調整したい であった質問です。 Excelでは、セル結合させて、垂直方向のセンタリングで簡単に実現できます。Accessではプロパティ設定等で簡単に実現するわけにはいきません。 VBAでワークテーブルに書き出してとか、Excelに出力...
fc2

上記で分からない場合は、現状のレポートのレコードソースのフィールド構成、レポートのグループ化/並べ替えの設定をを提示してもらえますか。

2
hideki 2021/07/09 (金) 22:26:09 a106b@96514

ご提示いただいたコードでできました。
ありがとうございました。

1
  • 順位1位 ~ 順位7位中 いずれかのレコード でフラグが立っている
  • 順位8位以下 全てのレコード でフラグが立っていない
    ( 8位以下が存在しないグループも含む )

両方の条件を満たしているグループを抽出したい
という解釈でいいでしょうか。

SELECT * FROM テーブル1
WHERE 部署 IN 
(
    SELECT 部署 FROM テーブル1
    GROUP BY 部署
    HAVING Sum( IIf( 順位 Between 1 And 7 AND フラグ Is Not Null, 1, 0 ) ) > 0
       AND Sum( IIf( 順位 > 7             AND フラグ Is Not Null, 1, 0 ) ) = 0
);
4
hiroton 2021/07/09 (金) 17:09:51 1392b@f966d

デフォルトでは非表示で、表示させる方法があるのですか?

そうですね

「ACCESS レポート グループフッター」とかで検索すると画像付きで解説しているサイトが見つかるので探してみてください

3
やまだ 2021/07/09 (金) 16:17:30 d4d49@786c8

ほぼ同じ質問があり解説がありました
https://zawazawa.jp/ms-access/topic/183

日付でグループをつくると
日付ヘッダーができますが、日付フッターがありません
デフォルトでは非表示で、表示させる方法があるのですか?

2
やまだ 2021/07/09 (金) 16:05:33 58219@c5b90

グループ化なしでご指摘の方法でできました

仕切り線についてですが、詳細の一番下に引いておくと、各レコードごとにでてしまします
最初の質問の画像のように、仕切り線を日付ごとに引くことはできないのでしょうか?

24
りんご 2021/07/09 (金) 16:00:20 c564b@0e907

次回、クエリをSQLビューにして、表示されるSQL文をコピーしてここに貼り付けてもらえますか?

23
hiroton 2021/07/09 (金) 12:11:48 1392b@f966d >> 4

コンボボックスで起きているそのほかの不具合「苗字カナの内容(カタカナ)が表示される」「データがない」等は起きていないということでいいですか?
たとえば、「か」のボタンを押したと想定して"[ア-オ]*""[カ-コ]*"に変えてみたり、さらに"[サ-ソ]*"に変えてみたり等、試してみてください

この、手で書き換えている操作を、フォーム上の値を使って自動で書き換えようというのが

Like [Forms]![基本情報1]![抽出用カナ]

の目的です。抽出条件を再度Like [Forms]![基本情報1]![抽出用カナ]に設定して、今度はフォーム上の「抽出用カナ」テキストボックスに手入力で"[ア-オ]*"と入力してクエリを開いてみてください。抽出条件を手入力したとき(Like "[ア-オ]*"と入力したとき)と同じ内容が表示されてますか?


同じ方の名前が何度も(100回以上)繰り返されています。

クエリの元データにはどのようなデータ(テーブルorクエリ)を使っているんでしょうか?>> 15で説明していますがクエリのもとにしているデータに複数登録されていれば何度も出てきて当然になります。データベース運用から考えれば「同一人物の重複登録を許さないデータ(テーブル)」があるものと思います。きちんと指定できていますか?

22
りんご 2021/07/09 (金) 11:40:19 c564b@0e907

>> 18
画像1の上部分、写ってませんが、クエリに使用しているテーブルが表示されるエリアがあると思います。どんなテーブルが表示されていますか?

1
hiroton 2021/07/09 (金) 11:30:18 1392b@f966d

コードはコピペしましょう。また、コードブロックを使うと読みやすくなります


フィルタのAND/ORには優先順位があります。次の二つでは結果が変わります

A and B or C and D
A and ( B or C ) and D

不具合の時のStrFilterの内容をみて条件式が間違ってないか確認してみてください

8

ありがとうございます、できました。
大変勉強になりました。

21

書き換えてみました。クエリの結果は、漢字で、あ行ではありますが、
太田・岡田・安西・石川・伊藤・太田・岡田・安西・石川・伊藤・太田・岡田・安西・石川・伊藤・・・・というふうに、同じ方の名前が何度も(100回以上)繰り返されています。

7
hiroton 2021/07/09 (金) 09:04:26 1392b@f966d

データを残す必要がある(テーブルに値を書き込む)ならVBAで組むのが楽でしょう
クエリでやるなら
空きのない順位(DENSE_RANK)をつける(もう一度学ぶMS-Accessさん)

6
たくろー 2021/07/08 (木) 23:01:54 bc949@c8d31

部署ごと、かつ、率の降順になるように集会クエリで加工済みのものをテーブルに書き出しています。そのテーブルに対してNoをふりたいと思っています。

ですので、部署が同じものの中で、AutoNo
の昇順で、率の降順に振りたいのですが、率が同率のものはダブらせいと思っています。

すみません、仕様の全てをお伝えしておらず、お聞きしたいエッセンスのみををお伝えするため、かなり簡略化しています。

5
りんご 2021/07/08 (木) 19:29:58 c564b@0e907

 念のため確認ですが、同じ部署、かつ、同じ率、かつ、同じNoの重複レコードを登録する必要性が本当にあるのでしょうか?例えば、新しいフィールドが追加されて、違いが後々生じる、という事でしょうか?

4
りんご 2021/07/08 (木) 19:15:32 c564b@0e907

 グループ内連番ですが、AutoNoの小さい順にNoを振るのでしょうか、それとも、率の大きな順にNoを振るのでしょうか?

3

こちらが正です。

8 CCCCC 50 1
9 CCCCC 20 2・・・同率
10 CCCCC 20 2・・・同率
11 CCCCC 10 3

2

すみません、ここは転記ミスです。

8 CCCCC 50 1
9 CCCCC 20 2
10 CCCCC 20 3・・・同率
11 CCCCC 10 3・・・同率

1
りんご 2021/07/08 (木) 18:45:58 c564b@0e907

 同率考慮はどういう意味ですか?同じ部署、かつ、同じ率の時は、同じNoになるとは限らないように見えますが。

24

すでにCLOSEしてしまっていますが、どうしても気になり、mayu様の標準SQLを試してみました。割と古いPCでも約4秒ですべての結果が表示されました。ご報告まで。

Database: SQL Server 2019 Developer Edition
OS: Windows10 Pro 64 bit
Processor: Intel(R) Core(TM) i5-3470 3.20GHz
Installed RAM: 16.0 GB
Storage drive: 500 GB SSD

1

式にNull値(未入力)があると結果もNullになるという仕様です。Nullを0に変換するNZ関数というものがありますのでそれを利用するといいでしょう。

未入金額合計: Nz([請求額合計])-Nz([入金額合計])
8
りんご 2021/07/07 (水) 11:06:52 c564b@0e907

 SQLビューに切り替えて、SQL文をコピペ提示してもらうほうが早いですね。
 現在、画面の左上のほうに、ファイル、ホーム、作成、、、デザインとある中で、デザインが選択されていると思います。その下の段に、表示、実行、選択、テーブルの作成、、、などボタンがあると思うので、表示ボタンの▼をクリックして、SQLビューを選択して下さい。

7

何度もありがとうございます。
指示していただいた通り実行したところ、エラーは出なかったのですが、[b]のところに値を入力するボックスが新たに表示され、意図したクエリは実行できませんでした…

1

まずはテーブル設計から検討しなおす必要がありそうです。
Accessはリレーショナルデータベースアプリですので、テーブル設計が「正規化」されている必要があります。
現状のままのテーブルではAccessでは使いものになりません。

正規化とは - もう一度学ぶMS-Access

アクセスデータベース設計の基本(正規化)

現状のままでいくならエクセルの方が適しているでしょう。

6
りんご 2021/07/07 (水) 10:38:06 c564b@0e907

 ちょっとすぐにエラーを再現できませんでした。念のため、もう一度、下記のようにやってみて下さい。
 まず、列の挿入で新規列を作り、フィールドのところで、右クリック、ビルドを選択して、式ビルダーを出して下さい。OKボタンの左に、式を入力する場所があると思うので、IIf([B] Is Not Null And [C] Is Not Null,[C],[D])を入れてOKボタンを押します。すると、式1: IIf([B] Is Not Null And [C] Is Not Null,[C],[D])と自動的に名前が付くので、この段階でクエリを実行してエラーが出るか確認して教えて下さい。

5

そのクエリをSQLビューにして、表示されるSQL文をコピーしてここに貼り付けてもらえますか。

4

ご丁寧にありがとうございます。
早速フィールドのところに入力してみたのですが、
『クエリ式 'テーブル名.[式1:IIf([B] Is Not Null And [C] Is Not Null,[C],[D])]の構文エラー:カンマがありません。』
というエラーが出てしまいます…
このエラーの対処などはご存知でしょうか?
本当に初心者で申し訳ございません…

3
りんご 2021/07/07 (水) 10:16:52 c564b@0e907

列の挿入で新規列を作り、フィールドのところに当該式を入力すると、どうでしょう?
補足しておくと、導出項目になるので、テーブルにデータとして残りません。

2

ご回答していただき大変ありがとうございます。
初心者なので初歩的な質問になってしまうのですが、
りんご様が提示してくださった式は、デザインビューのどこに入力すれば良いのでしょうか?
列の挿入で新規列を作り、フィールドのところに当該式を入力すべきでしょうか?それとも抽出条件の欄でしょうか?
よろしくお願いいたします。

1
りんご 2021/07/07 (水) 10:01:15 c564b@0e907

式1:IIf([B] Is Not Null And [C] Is Not Null,[C],[D])
式1の部分を希望の名前にすると、どうでしょうか?

20
hiroton 2021/07/07 (水) 08:31:14 5e9eb@f966d >> 4

「Q従業員抽出」を直接開いて内容を確認してみましたか?

クエリでほしいリストがきちんと作れているか確認しましょう。フォームとの連携はひとまずおいといて抽出条件を変更して確認してみてください

Like [Forms]![基本情報1]![抽出用カナ]
↓
Like "[ア-オ]*"

これでクエリを開くと、「あ」のボタンを押したときにコンボボックスに表示したい内容になりますか?

19
りんご 2021/07/07 (水) 00:26:01 c564b@0e907

 プロパティシートの書式タブを選択したら、列数を2、列幅を例えば、1cm;1cmにしてみて下さい。
 コンボボックスをクリックすると、プロパティシートの連結列が2のときは、(2列目があれば)2列目のデータが選択されたという事になるはず。

18

再度確認しました。
クエリの名前も、コンボボックスの集合値ソースも Q従業員抽出 にしています。
合っているはずなのですが・・・。
ただ、今回はカタカナの名前が繰り返されるのではなく、コンボボックスの中は空白になってしまいました。

画像1
画像2
画像5
画像3
画像4

5
セメント 2021/07/06 (火) 23:24:44 d1e06@0f626

回答ありがとうございます!
皆様のアドバイスを受けなんとかそれらしいものができました。
またよろしくお願いします!

3
りんご 2021/07/06 (火) 22:32:05 c564b@0e907

 ところで、どんなデータベース管理のために、どんなフィールドを用意して、ぢんなデータをカウントとしようとしているのでしょう?
 具体的になると、横向き云々がAccessに不向きだから、縦向きに組み直しましょうとなるかもしれません。