Access2016のレポートで代表者の空欄を詰めて出力する方法
- Access2016のレポートで代表者が空欄となっている箇所を詰めて出力する方法について解説します。
- 詳細セクションと代表者名のテキストボックスの印刷時縮小を「はい」にすると、null値または「長さ0の文字列」のときに自動で詰まるという情報がありますが、それがうまく機能しない場合にはどうすればよいかもご紹介します。
- この記事では、Access2016のレポートで代表者の空欄を詰めて出力するための方法について詳しく説明します。要約セクションと代表者名のテキストボックスの印刷時の設定を調整することで、空白行をなくすことができます。さらに、具体的な手順や設定値の指定も記載していますので、ぜひ参考にしてください。
- ベストアンサー
Access2016のレポートについて
いつもお世話になっております。 Access2016のレポートで困っていますので、ご教示をお願いいたします。 下記のようなテーブルがあり、代表者がまだ決まっていない地域があるため、空白となっている所があります。 これをレポートで出力した際、代表者が空欄となっている所は1行分空いてしまいます。この代表者が空欄となっている所を詰めて出力したいと思います。 いろいろと調べて、詳細セクションと代表者名のテキストボックスの印刷時縮小をそれぞれ「はい」にすると、null値または「長さ0の文字列」の時は自動で詰まるとありましたが、なりませんでした。 どうか、ご教示をよろしくお願いいたします。 【テーブルA】 地区名 地域名 代表者名 AAA あああ ネズミ AAA ああい ウシ AAA ああい (空白) BBB いいあ トラ BBB いいあ ウサギ CCC ううあ タツ CCC ううあ (空白) CCC ううい ヘビ 【レポートA】 地区名(グループ化) 地域名(グループ化) 代表者名(詳細セクション) AAA あああ ネズミ ああい ウシ (空白行) ------------------------------- BBB いいあ トラ ウサギ ------------------------------- CCC ううあ タツ (空白行) ううい ヘビ ------------------------------- ↓空白行をなしで出力したい形 【レポートA】 地区名(グループ化) 地域名(グループ化) 代表者名(詳細セクション) AAA あああ ネズミ ああい ウシ ------------------------------- BBB いいあ トラ ウサギ ------------------------------- CCC ううあ タツ ううい ヘビ -------------------------------
- ankle
- お礼率43% (80/182)
- Access(アクセス)
- 回答数12
- ありがとう数6
- みんなの回答 (12)
- 専門家の回答
質問者が選んだベストアンサー
【最後のチェック】Me.xxx SELECT 地区名, 地域名, 代表者名台帳.名前 AS 代表者名 FROM A LEFT JOIN 代表者名台帳 ON A.代表者名_ID=代表者名台帳.ID WHERE Len(代表者名台帳.名前 & ""); 上記SQLでは、表向きは《代表者名》。だが、実体は、《代表者名台帳.名前》です。この場合でも、SELECT文はちゃんと働きます。が、いずれにしろ、こういう類のことが起きているのかもしれません。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Me.詳細.Visible = Len(Me.代表者名 & "") End Sub 《Me.代表者名》が正しければ、これで目的が達成されます。されないことは絶対にあり得ません。唯一の可能性は、Me.xxx の間違いです。そこで、Me.とやって候補を取得するテストをしてみる。それで何かが分かるかもです。 《フィルタの利用はあり得ない》 なお、フィルタ機能は、《表示地区選択メニュー》からレポートを開く際に持ちいる機能。ですから、不具合データを非表示するのに利用するのは誤用。やっぱり上のやり方。そういうことで、最後に、Me.XXXを表示して最終確認を。
その他の回答 (11)
- chayamati
- ベストアンサー率41% (254/607)
今日は レポートAのデザインビューのプロパティーでレコードソースの右端の…を クリックするとクエリビルダが起動しクエリーが表示されます。 これに、使用するフィールドを下にドラッグして、抽出条件を記述します 尚、フィールド名はワイルドカード(*)が使えます 項目名に重複を避けるため (*)を使うと、条件の為ドラッグした代表者名の表示欄の✔を外します。
お礼
chayamatiさん、おはようございます。 参考になる情報をお教えいただきまして、誠にありがとうございます。
- m3_maki
- ベストアンサー率64% (295/459)
No.10 です。 レポートビューでは フォーマットイベントは発生しませんので この方法では出来ません。
お礼
m3_makiさん、こんにちは。 レポートビューでは表示にならないのですね。いろいろとありがとうございました。
- m3_maki
- ベストアンサー率64% (295/459)
No.9 です。 > フォーマット時イベントに上記モジュールを入れてみましたが、残念ながら空白行が表示となりました。 印刷プレビュー ではなく、レポートビュー で見ているのではありませんか?
お礼
m3_makiさん、こんばんは。 おっしゃる通り、印刷プレビュー ではなく、レポートビュー で見ていました。失礼しました。 ちなみに、レポートビューでも非表示にできますでしょうか。
- m3_maki
- ベストアンサー率64% (295/459)
横から失礼します。 「代表者名」が空のレコード(Null, 空文字列, スペースのみ)を 表示しない、ということなら これでいけます。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If Me.代表者名 Like "*[! ]*" Then Else Cancel = True End If End Sub
補足
m3_makiさん、お答えいただきましてありがとうございます。 さて、フォーマット時イベントに上記モジュールを入れてみましたが、残念ながら空白行が表示となりました。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】先ずは、SQL文のテストをしっかり! 私は、先ず、添付図のようにDBSelect()でSQL文をテストしてからレポートの作成作業に移行しています。質問者も、段取りを踏んだ方がいいですよ。ただ、【イミディエイトウインドウ】で簡単にテストする関数は用意されていません。そこで、自作することになります。自作と言っても、単に次に紹介するDBSelect()を標準モジュールにコピペするだけです。その後に、【ツール】【参照設定】で Microsoft ActiveX Data Obeject 2.1 Library にレ点を付けるだけです。 多分ですが、SQL文のテストに成功されたら、万事上手くいくと思いますよ。 祈、成功! Public Function DBSelect(ByVal strQuerySQL As String, _ Optional colDelimita As String = ";", _ Optional rowDelimita As String = ";") As String On Error GoTo Err_DBSelect Dim R As Integer ' 行インデックス Dim N As Integer ' 行総数 - 1 ' Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim fld As ADODB.Field Dim strList As String ' 全てのデータを区切子で連結して格納 Set cnn = CurrentProject.Connection Set rst = New ADODB.Recordset With rst .Open strQuerySQL, _ CurrentProject.Connection, _ adOpenStatic, _ adLockReadOnly If Not .BOF Then N = .RecordCount - 1 .MoveFirst For R = 0 To N For Each fld In .Fields With fld strList = strList & .Value & colDelimita End With Next fld strList = Mid(strList, 1, Len(strList) - 1) & rowDelimita .MoveNext Next R Else strList = "" End If End With Exit_DBSelect: On Error Resume Next rst.Close Set rst = Nothing DBSelect = IIf(Len(strList) > 0, Replace(strList & "[END]", rowDelimita & "[END]", ""), "") Exit Function Err_DBSelect: MsgBox "SELECT 文の実行時にエラーが発生しました。(DBSelect)" & Chr(13) & Chr(13) & _ "・Err.Description=" & Err.Description & Chr(13) & _ "・SQL Text=" & strQuerySQL, _ vbExclamation, " 関数エラーメッセージ" Resume Exit_DBSelect End Function
お礼
f_a_007さん、お世話になっております。 お教えいただいた内容で行いましたら、ここで例として上げているテーブルではうまくいきました。 ただ、仕事で使っている本番用のAccess(もう少し複雑な中身)では、うまく表示になりませんでした(T_T)
補足
f_a_007さん、ご回答ありがとうございます。 こんなに長いモジュールを作成していただき、本当にありがとうございます。 早速試してみますので、結果は後ほどお知らせいたします。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】手抜き回答しちゃったので・・・ クエリを使ったらなんて、手抜きでいい加減な回答をしてしまったので・・・ ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 原則:Access のクエリはフォームやレポートで用いるべからず! ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ちゃんと、SQL文を書くのが基本中の基本です。で、その要領を示しておきます。これで、テストされてみたら・・・ 当方、全く同じテーブル、同じデータで試していますので、同じ結果になると思いますよ。もしかしたら、《代表者名が空ではないのかも》ですね。 SELECT * FROM A WHERE Len(Trim([代表者名]) & ''); だったら、空行が出力されないかもです。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】クエリ17とは? それは、添付図のようです。 <> False は、Access のクエリ編集が勝手に付けます。別に必須ではありませんが、仕方ありません。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
補足:Where節の書き方は人それぞれ 1、Len([列名] & "") 2、Not isNull([列名]) これは、好みの問題です。私の好みは1です。
補足
f_a_007さん、何度もありがとうございます。 私のやり方が悪く、どうしても空白行が出てしまい、余白となってしまいます。 感じ的には、シンプルな「【補足】レポートで消すことも可能!」でいけそうな気がするんですが、ダメみたいです(T_T)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】レポートでフィルタをかければOKだが・・・ でも、その場合、一旦全てを読み込むことになります。で、予めデータを絞り込んだクエリを作成してレポートをビルドするのが普通だと思いますよ。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】レポートで消すことも可能! でも、その場合には、レポートのレイアウトが上ではなく下でなければならにという制約が生じます(添付図参照のこと)。なぜなら、空である行を消すと、そこにある別のデータも消えるからです。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Me.詳細.Visible = Len(Me.代表者名 & "") End Sub
- 1
- 2
関連するQ&A
- ACCESSのレポートのついてです
初心者でお恥ずかしい質問ですが、本当に悩んでいます。 どうか教えてください!! バージョンは2007です。 クエリで 以下の通り表示されているものを レポートで表示する方法についてです。 本社 AAA 本社 BBB 本社 CCC 本社 DDD 本社 EEE ア支店 FFF イ支店 GGG 以下続く ○表示したいレポート1 (担当)本社 (製品名)AAA BBB CCC DDD EEE ○レポート2 (担当)ア支店 (製品名)FFF 「以下余白」 (空白のセル) (空白のセル) (空白のセル) ○ 教えてください(1) 1ページに5件の製品名を表示できるをようにしたいです。 5件以下の場合は、空白のセルが表示されるようにしたいです ○ 教えてください(2) 1~4件の表示の時、「以下余白」の文字を入れたいです 今の状況は、 レポート1 (担当)本社 (製品名)AAA AAA AAA AAA AAA です。 どうぞご指導ください!お願いします!!
- 締切済み
- オフィス系ソフト
- bashスクリプトでのテキストの検索・置換について
下記のような形式のテキストファイルがあります。 []で囲まれた部分の文字列(セクション名)はわかっています。 各セクションの間には空行があることもあれば無いこともあります。 各セクションの記載順序は不定です。 各セクションの中の記載順も不定です。 各セクションの中の行数も不定です。 別々のセクションに同じ行があり得ます。 この場合に、bashスクリプトの中で、[def]セクションの文字列cccをccdに置き換えるにはどのような方法があるでしょうか。 awkでできるような気がするのですが、 awk '/\[def\]/{BEGINNUM = NR}' FILENAME とすれば BEGINNUM にセクションの始まりを取得できるものの、セクションの終わりの行番号の取得がわかりません。 [def]行の後に最初に出てくる[]の付いた行を検出すればよいのですが、特定の行以降で最初に出てくる文字列の行を検索するのはどうすればよいでしょうか。 あるいは、まったく異なった方法があるでしょうか。 (対象テキストファイル) [abc] aaa bbb ccc [def] aaa ccc bbb ddd [ghi] aaa eee bbb ccc (テキストファイル終了) 2007年3月25日
- ベストアンサー
- Linux系OS
- アクセスのレポートでの連番付番方法について
いつもお世話になっております。 アクセス2016のレポートで、連番のふり方についてお教えいただきたいと思います。 レポートでは、最初に日付でグループ化し、次に名前でグループ化しています。 連番は最初のグループ化でしている日付でふりたいのですが、やり方が分かりませんので、どうぞご教示をお願いいたします。 イメージは、下記のように考えています。 【例】テーブル名:T_仕事 日付 名前 仕事 8月1日 ああああ aaa 8月1日 ああああ bbb 8月1日 いいいい ccc 8月1日 うううう ddd 8月2日 うううう eee 8月2日 うううう fff 8月2日 ええええ ggg 8月2日 おおおお hhh 8月2日 おおおお iii 8月3日 かかかか jjj 8月3日 かかかか kkk レポート名:R_仕事 日付 名前 仕事 連番 8月1日 ああああ aaa 1 bbb 2 いいいい ccc 3 うううう ddd 4 8月2日 うううう eee 1 fff 2 ええええ ggg 3 おおおお hhh 4 iii 5 8月3日 かかかか jjj 1 kkk 2
- ベストアンサー
- Access(アクセス)
- Access レポートの改ページについて
お世話になります。 以下のテーブルがあります。 受注日 型番 納期 2015/01/01 AAA 2015/01/05 2015/01/01 BBB 2015/01/05 2015/01/01 CCC 2015/01/06 2015/01/01 DDD 2015/01/06 で、このテーブルをソースとしてレポートを作成したいのですが、 「納期」で改ページさせたいところです。 なので、このテーブルをレポートで開くと、 納期:2015/01/05 ← ヘッダー 受注日 型番 2015/01/01 AAA 2015/01/01 BBB 納期:2015/01/06 ← ヘッダー 受注日 型番 2015/01/01 CCC 2015/01/01 DDD と、2ページになって欲しいのですが。。 どのようにすれば、このように改ページできるように なりますでしょうか。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- その他(データベース)
- 抽出して並べ替えたい
初めまして 非常に悩んでいます。 エクセルシートの列に下記のようにデータが並んでいます。(文字列) AAA bbb ccc (空白) BBB ddd eee (空白) AAA bbb ccc (空白) AAA eee ggg 並べ替え後 AAA AAA BBB bbb eee ddd ccc ggg eee 尚、列上でセル位置は任意で、空白行も任意です。(1つ以上です) できれば関数でお願いします。 VBAの場合、使用したことがないので詳しくお願いします。
- 締切済み
- Windows 7
- Access2003or2000レポート機能
お世話になっております。 Access2003のレポートでお聞きしたい事があります。 データとして、 【フィールド】 名前,金額 【値】 AAA,100 AAA,200 AAA,300 BBB,100 【レポート】 (1枚目) 名前:AAA 金額 100, 200, 300 (列が多いと2枚目以降は名前を表示しない) (2枚目) 名前:BBB 金額 100 と表示したいのです。 グループ化の設定で名前を指定すれば、 名前でブレークします。 ページヘッダに金額ラベル、詳細に金額フィールドを指定すれば、 上記レポートのレイアウトになります。 しかしレイアウト上名前を一番上に設定したいのですが、 レポートヘッダに指定すると、一枚目しか出ませんし、 ページヘッダに指定すると、毎ページ出力されますし、 グループ化し、できた名前ヘッダーに指定すると、ページヘッダーより下に表示されますし・・・。 【レポート】の様なレイアウトの実現にはどの様な方法があるでしょうか? お時間のある有識者の方、ご享受宜しくお願い致します。
- 締切済み
- その他(データベース)
- ACCESS 2007 レポートについて
ACCESS 2007 レポートについて レポート作成時、年度毎にグループ化し集計したいのですがうまくいきません。イメージとしては下記のように作成したいです。 テーブル 品名 日付 金額 AAA H12/4/1 3000 BBB H12/12/31 4000 CCC H13/3/31 5000 DDD H13/4/1 6000 EEE H13/10/1 7000 FFF H14/3/31 8000 レポートにて 品名 日付 金額 AAA H12/4/1 3000 BBB H12/12/31 4000 CCC H13/3/31 5000 平成12年度 合計3件 DDD H13/4/1 6000 EEE H13/10/1 7000 FFF H14/3/31 8000 平成13年度 合計3件 こんな感じでレポートにて表示させたいのですが、ついでに年度毎に1ページに表示させたいです。(データが多ければ(2)ページになります) クエリを使用し、例えば、平成13年度のみ表示させることはできます。 抽出条件にBetween CDate(CStr([年度を入力]) & "/4/1") And CDate(CStr([年度を入力]+1) & "/3/31")
- ベストアンサー
- その他MS Office製品
- 行数ごとに検索をかけて並び替えをしたいのですが・・
数千のファイル名が書かれたテキストファイルがあります。(Aとします。) /yyy/ccc.txt /aaa/aaa.txt /bbb/bbb.txt /sss/aaa.txt /ccc/bbb.txt /zzz/ccc.txt ・ ・ ・ ユニークファイル名だけ書かれたファイルがあります。(Bとします。) aaa.txt bbb.txt ccc.txt ・ ・ ・ Bの行数1行ずつAで検索をかけ、ファイル名を新しいファイル(Cとします)に書き出したいのです。 /aaa/aaa.txt /sss/aaa.txt /bbb/bbb.txt /ccc/bbb.txt /yyy/ccc.txt /zzz/ccc.txt ・ ・ ・ シェルを使ってやりたいのですが、どのようにすればいいのか見当もつきません。 どなたかお分かりのかたいましたら教えてください。よろしくおねがいします。
- ベストアンサー
- Linux系OS
- パズル得意な人教えてください。
虎 馬 蛇 龍 羊 牛 鼠 兎 兎の隣には一つスペースがあり干支の順に並べるスライドパズルなんですがどうしてもできません。 順番は、 鼠 牛 虎 兎 龍 蛇 馬 羊 と並べなくてはいけないんですが私には無理です。 できる人いますか?
- ベストアンサー
- オンラインゲーム
- ACCESSレポートの質問です
ACCESS2010のレポートで伝票印刷(7行明細)をしています。 商品名が長いのがあるので、1行の明細で2段(30文字/30文字)に印刷するようにしています。上段に商品名1、下段に商品名2です。 商品名が30文字以内のときは、商品名2は空白なので商品名1を下段に印字したいです。レポートの「詳細」で商品名2が空白のときにコントロールソースの内容を変更して出来ないかと思っています。 ご存知の方は教えてください。 よろしくお願いします
- ベストアンサー
- その他(プログラミング・開発)
お礼
f_a_007さん、いつもお世話になっております。 何度もご教示いただきまして、誠にありがとうございます。 後ほど試してみますので、改めてご報告いたします。
補足
f_a_007さん、こんばんは。 おかげさまで、この例のテーブルではうまく表示になりました。 ただ、教えていただいた形で仕事で使っている本番用のAccessに適用させたら、残念ながらうまくいきませんでした。 新たな質問として、再度質問(仕事で使っている構造と同じ)しようと思いますのでよろしくお願いいたします。