• 締切済み

Accessレポートで場合分けした直線の引き方

いつもお世話になっております。 Access2003を使用しています。 テーブルで参加者名簿があり、その中に欠席者フラグのフィールドがあります。 この欠席者フラグフィールドに、テキストで1と入力されている人の名前の上に、 レポートから印刷した時、欠席者と分かるように直線を引きたいと考えています。 しかし、このように場合分けして直線が出たり出なかったりするやり方が分からず 困っています。 どうか、ご教示をお願いします。

みんなの回答

回答No.5

【訂正】 X  IF Me.[参加・不参加]=True THEN O  IF Me.[参加・不参加]=False THEN O  IF NOT Me.[参加・不参加]=True THEN O  IF NOT Me.[参加・不参加] THEN と、訂正しておきます。 【訂正のついでに・・・】 [出欠].コントロールソース: =Not ([欠席者フラッグ]="1") Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   Me.直線11.Visible = Not Me.[出欠] End Sub 私は、このように[出欠]というチェックボックスを設けています。もちろん、 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   Me.直線11.Visible = CBool(Me.[欠席者フラッグ] = "1") End Sub とも書けますよ。添付図は、最後に示した書き方をしています。なお、CBool()は必須ではありません。

回答No.4

【補足1】作戦2の線の大きさの制御について 添付図の場合、横線を表示しているテキストボックスの文字の大きさはその他より3ポイント小さくしています。作戦1ですと線の大きさは線の大きさで、作戦2ですと線の大きさは文字の大きさでということになります。 【補足2】IF THEN文は論理式で表現できます。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   IF Me.[参加・不参加]=True THEN      Me.直線11.Visible = True   Else      Me.直線11.Visible = False   End IF End Sub このIF THEN文を論理式で表現すると Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   Me.直線11.Visible = Not Me.[参加・不参加] End Sub となります。 蛇足とは思いましたが2点ほど補足しておきます。

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.3

あまり詳しくありませんが、一般的には欠席者フラグの フィールドを参照して、1が入力されていたら直線を引いて 何も入力されていなければ直線を引かないようにします。 なので、レポートの氏名を表示するテキストボックス上に 直線を引いておいて、それを欠席者フラグによって表示させたり 非表示にしたりします。 レポートの詳細のイベントで「フォーマット時」の箇所に If Me.欠席 = "1" Then Me.取り消し.Visible = True Else Me.取り消し.Visible = False End If としてみて下さい。 Me.欠席は欠席者フラグを表示しておりレポートでは非可視にします。 Me.取り消しは氏名のテキストボックスの上に引いた直線のことです。 Visible = Trueで直線を表示、Visible = Falseで非表示とします。

回答No.2

Accessのレポート作成なんて実に21年ぶり。で、思いだし思い出し・・・。 作戦1、レポートの詳細_Formatで表示・非表示を制御。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   Me.直線11.Visible = Not Me.[参加・不参加] End Sub 作戦2、SQL文で不参加線をあらかじめ生成しておく。 SELECT ID, [参加・不参加], 名前, IIf([参加・不参加],"","――――――――") AS 不参加 FROM 参加者名簿; 作戦2でも良いかと思います。

ankle
質問者

お礼

f_a_007さん、ありがとうございます。 早速試してみます。

  • panacon
  • ベストアンサー率31% (214/679)
回答No.1

ankle さんへ データソースを「="_____"」にしたテキストボックスをレポートの横幅いっぱいに作成して、これをレコードに同居するその他のフィールドよりも背面に置いて、条件付書式設定で、白、黒を切り替えればできると思います。アンダーラインしか直線になるのがないので、テキストボックスの位置を半分ずらせば、真ん中に来ると思います。文字と同色であれば、直線は、上にあっても下にあっても見栄えは同じです。背面に置くのは、白くしたときに上の文字を消さない工夫です。

ankle
質問者

お礼

panaconさん、ありがとうございます。 早速試してみます。

関連するQ&A