• ベストアンサー

Access97の帳票形式フォームで 条件によって書式変更するには

Access97で帳票形式のフォームで下記の対応をするには、どうすれば良いのでしょうか。? 1.条件によって、前景色or背景色を変えるには? 2.フォーカスのあるコントールの背景色を変えるには? 御存知の方、いらっしゃいましたら 教えて頂けませんか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#89342
noname#89342
回答No.3

↓ここに書いてありました

参考URL:
http://www.ruriplus.com/msaccess/tch/tch_idx.html
fumichan
質問者

お礼

sstakさん 有難うございました。 お蔭様で 思っていた通りの事が実現出来ました。 Accessでも いろんな技があるのですね。 『もっともっと 知識を高めていこう』と 改めて思いました。 本当に有難うございました。 fumichan

その他の回答 (2)

  • yuziro
  • ベストアンサー率41% (5/12)
回答No.2

質問2(フォーカスのある~)の方は、よろしいのでしょうかね? *** 質問1&補足について *** まだ、はっきりしない点もあるのですが、 ある程度、想像で補うと、 親フォーム、子フォームのレコード移動時イベントを 使うのが、最も適当かと思われます。 まず、サブフォームの表示なのですが、 親フォームのモジュールで、 Private Sub Form_Current() Me.[サブフォーム名].Visible = (条件) End Sub とすると、(条件)のところが成立していれば、 サブフォームは表示され、 成立していなければ、サブフォームは表示されません。 次に、サブフォームの値による、親フォームの背景色の変更ですが、 サブフォームのモジュールで、 Private Sub Form_Current() Parent.[背景を変えたいコントロール名].BackColor = IIf(条件, 条件が成立した時の色, 条件不成立の時の色) End Sub とすると、条件の正否によって、親フォームのコントロールの背景が変わります。 ※補足 あらかじめ作ったデータだけでなく、 随時入力されるデータを、リアルタイムに、 サブフォームの表示/非表示に利用したい時は、 レコード移動時のイベントを利用すると共に、 各コントロールの更新イベントや、フォームの更新イベントも利用した方がいいですね。 条件の設定の際、Null値の処理には、気を付けてくださいね。

  • yuziro
  • ベストアンサー率41% (5/12)
回答No.1

1.ACCESS2000なら、「条件付き書式」なる機能があるのですが・・・ VBAを使えば、   [コントロールの名前].ForeColor = 色コード   [コントロールの名前].BackColor = 色コード を、必要な個所に織り込むことで可能です。 2.VBAを使うなら、   Screen.ActiveControl.BackColor = 色コード   Me.ActiveControl.BackColor = 色コード の、どちらかを 各コントロールのフォーカス取得時、喪失時のイベント に割り当てれば可能です。

fumichan
質問者

補足

申し訳ありません。 もう少し、質問の内容を詳しく書けば良かったのですが... 実は、予めテーブルを作成し、その内容をある条件によってサブフォームに 表示させたいと思っています。 その表示させるサブフォームの各レコードの値によって 前景色or背景色を 変更したのですが 又、VBAを使うイベントのタイミングも出来れば教えて下されば幸いです。 宜しく、お願い致します。

関連するQ&A

  • Accessの帳票形式のフォームについて

    いつも楽しく勉強させていただいております。 OSはWindows7。 フロントエンドがAccess2013でSQLServer2012がバックエンドです。 複数レコードを一度に表示するいわゆる帳票形式のフォームを作ります。 [保存]ボタンで変更を保存、[キャンセル]ボタンで保存しないでフォームを閉じます。 このようなフォームを作る際、私はこれまでこの方法でやってきました。 1.本物テーブルの内容をテンポラリのテーブルにコピー 2.テンポラリのテーブルと連結したフォームで編集 3.[保存]ボタンのクリックでテンポラリのテーブルで本物を上書き この方法の弱点は本物のテーブルにロックがかからないことです。 かといって本物のテーブルに連結したフォームにすると編集した内容をキャンセル することができません。 これを解決する根本的な方法はないものでしょうか。 たとえば帳票形式にする代わりにデータグリッドのようなコントロールを使用して 本物のテーブルにロックをかけつつ複数レコードの変更のキャンセルも可能という フォームは作れますか。 フォームをデザインビューで開いたときに見られるActiveXコントロールには データグリッドに類するコントロールはないようです。 ネットで調べるとVB6.0のDataGridコントロールを使用できるとか、 操作がうまくいかないとかAccessでVBのコントロールを使用するのはそもそも 許されないとか書いてあるのでデータグリッドを使う方法は無理でしょうか。 もう一度問題を整理すると、以下のようになります。 1.複数レコードを一度に表示して編集したい。 2.そのレコードにロックをかけたい。 3.編集のキャンセル(ロールバック)も可能にしたい。 帳票フォームでもデータグリッドでも方法は問いません。 あるいは「Accessでは実現できない」という情報でもいいです。 お詳しい方、どうかよろしくお願いいたします。

  • Accessフォーム条件付書式

    どなたか教えて下さい。 Access2002を使っています。 フォームの条件付書式を使い売上が100000円以上なら赤に背景色を変えようと思っています。 VBAの勉強の為に、ツールバーの条件付き書式を使わずにvbaで挑戦してみました。 Private Sub Form_Open(Cancel As Integer) If Me.売上.Value >=100000 Then Me.売上.BackColor = RGB(255, 0, 0) End If End Sub 単票形式ならば上手くいくのですが、フォームのデータシートタイプで表示すると反応しません。 但し、ツールバーの条件付き書式からの設定ではデータシートでも反応します。 上記のIF文では条件付書式にはなっていないのでしょうか? helpでDatasheetBackColor プロパティというのを探せましたが、全体の背景色の変更になってしまいます。 ツールバーにあるからには、VBAで出来るだろうと考えるのは間違えでしょうか? もしもデーターシートの条件にあったセルのみ背景色をvbaで変えられることを知っている方、よろしくお願いします。 haru

  • Access2000 フォーム 条件付き書式

    Access2000 フォームのテキストボックスにて 使用可能:いいえ、編集ロック:はい とし、値によって条件付き書式で文字を赤にする。 以上の設定をしています。 フォームビューできちんと条件通り表示されるのですが 1つ疑問が・・・ 条件に合致した場合だけテキストボックス内の文字選択ができてしまいます。 消したり書き替えたりはできないので特に困りませんが、なぜ?と思ったので質問してみました。 もしご存知の方がいらっしゃいましたら教えてください。

  • Access2002:帳票形式のフォーム内に明細を表示させたい

    下記の様なテーブルがあります。 テーブル名:T_明細 +----------------------------------------------+ ID   受注番号   名称   数量   発注先 +----------------------------------------------+ 1   1      りんご   1   A商店 2   1      ぶどう   3   A商店 3   2      みかん   2   A商店 3   2      キウイ   2   A商店 4   2      桃     1   Bショップ 5   3      メロン   3   A商店 6   3      バナナ   2   Cストア +----------------------------------------------+ このテーブルの情報を下記の様なフォームを作成し 表示しようとしています。 フォーム名:F_発注処理(受注番号単位で開かれます)※帳票形式にて表示 ■受注番号1 で開いた場合 ------------------------------- A商店      発注明細       りんご   1       ぶどう   3 ------------------------------- ■受注番号2 で開いた場合 ------------------------------- A商店      発注明細         みかん   2         キウイ   2 ------------------------------- Bショップ   発注明細       桃   1 ------------------------------- ■受注番号3 で開いた場合 ------------------------------- A商店      発注明細       メロン   3 ------------------------------- Cストア      発注明細       バナナ   2 ------------------------------- Accessの仕様で、帳票形式のフォーム内にサブフォームを設置できないのは、知っています。 また、別の方法で「発注明細」部分をリストボックスにし 親レコード毎に、Rowsourceの値を変更するような仕組みにしてみましたが これも上手くいきませんでした。(元々こういう使い方は出来ないのでしょうか・・・) 参考:Form Loadイベントに    Me.明細.RowSource = "SELECT 名称,数量 FROM T_明細 WHERE 受注番号 = " & Me.受注番号 & " and .発注先 = '" & Me.発注先 & "';" 要は、 1.受注番号毎に、F_発注処理フォームは開かれる 2.発注先毎に帳票表示し、各発注先毎に明細を表示 という条件を満たしたいのですが、良い方法が思いつきません。 どなたかご助言頂けませんでしょうか。宜しく御願い致します。

  • ACCESS帳票フォームのレコード移動と条件分岐

    フォームのデータからWhere条件式で、合致するレコードを抽出するクエリーを作りました。 このレコードを新しく作成した帳票フォームに表示しています。 日付、商品名、項目名、変数1、変数2 この帳票からラベルを出力したいのです。 1個のレコードにフォーカスを当てた時ラベルを作成するVBAは作れたのですが、先頭から順番にすべてのレコードを検査し、変数1と変数2に値が入力されている場合のみ、そのレコードのデータからラベルを出力するということができません。 どのように構文を組んだらよいでしょうか? ACCESS2007、windows7環境です。

  • アクセスのフォームについて

    アクセス2000でフォームを作成しています。 既存の帳票(出納帳簿のようなもの)をスキャナーで取り込みJPEG形式で保存(サイズは790KB)しフォームの背景として  ピクチャタイプ  埋め込み  OLEサイズ   ズーム  ピクチャ配置   中央  ピクチャ全体表示 いいえ 上記のプロパティで設定したのですが、上書き保存等の動作が非常に遅くなりました。  本来ならば罫線等のツールを使いながら帳票を作成しなければならないとは思うのですがうまくできないので画像として背景に取り込みましたがこのようなことをする限り動作が遅くなるのは仕方ないのでしょうか。  また、他に既存の帳票を生かした形でうまくできる方法があれば教えて欲しいのですが。  ※本来ならばレポートですべきなのでしょうが、入力画面も出力レポートも同じにしたいのでフォームで作成しようとしています。  ※OSはXPで、CPUはセレロン2GHz   メモリは256MBです。  

  • アクセスで指定したレコードをフォームで開く方法?

    アクセスで、帳票形式のフォームで選択したレコードの内容を、詳細を表示する用のフォーム(単票形式)で開きたいのですが、どうしたらよいのでしょうか?(初心者です) 例えば、帳票形式のフォームで「予約番号:1」のレコード 選択した状態で、ボタンをクリックすると、 詳細を表示する用の単票形式のフォームの「予約番号:1」のレコードが表示されるようにしたいのです。 マクロでは出来なそうなので、VBAで・・・というところまでしか検討がつきません。 使用しているのはアクセス2002です。 どなたかご存知の方がいらっしゃいましたら、教えてください。よろしくお願いします。

  • Accessのフォームについて

    Access2002のフォームについて質問します。単票形式、表形式、データシート形式、帳票形式とありますが、単票形式、表形式は、だいたいどんなものかイメージができるのですが、データシート形式、帳票形式とはどんなものですか?またどんな時にこの形式にするのでしょうか?単票形式、表形式との違いはなんでしょうか? 教えてください。お願いします。

  • 帳票から単票フォームへの表示がうまくいきません

    ACCESSを始めたばかりです。 帳票表示されているレコードを単票フォームで表示させたいです。 テーブル「売上データ」がありこのテーブルを使って帳票用と単票用のクエリを作成、それぞれに対してフォームを作っています。 「売上データ」には、オートナンバーで No があり、これを主キーにしてあります。 クエリ Q帳票   フォーム F帳票 クエリ Q単票   フォーム F単票 フォームF帳票には、レコード内にボタンをおきました。 ボタンには、下記のマクロをつくって イベント クリック時 のところにいれました。 マクロ フォームを開く  フォーム名 :F単票  ビュー   :フォームビュー  フィルタ名 :  Where条件式 :[No]=[Forms]![F帳票]![No]  データモード:  ウィンドウモード:ダイアログ フォームF帳票 で、検索窓を作って検索した一覧の中から単票表示したいレコードのボタンをクリックして単票フォームをダイアログで開かせたいです。 上記のようにやってみたのですが、単票フォームは開くもののデータは空白になってしまいます。 ちなみに、作ったマクロを実行してみると Forms!F帳票!No とパラメータの入力を求められるので適当な数字をいれるとその数字に該当した単票フォームが開きます。 WEBで探して同じような感じで作ってみたのですがうまくいきません。 どこが間違っているのでしょうか? ちなみにクエリ Q単票 の Noの抽出条件に[Forms]![F帳票]![No]をいれてみたりもしましたがうまくいきませんでした(空白で単票が開く) 何卒よろしくお願いします。

  • Access 帳票フォームのコンボボックス

    こんにちは。 Accessの帳票フォームに得意先のコンボボックスを配置し、入力の手助けをしたいと思います。 しかし、名前が良く似ているため、一部を入力したらリストが絞り込まれるようなものにしたいのです。 単票フォームに同じようなものがあり、非連結のテキストボックスに入力をしたら、コンボボックスに絞り込まれたリストが自動的にドロップダウンされるようなものを作っています。 帳票フォームでこういうことをすることが、難しいことは今までいろいろな方の質問で分かっています。  Access2003  Q:得意先:得意先ID、得意先名、検索カナ  検索カナの一部を入力したら、得意先名のリストが自動的に表示されるようにしたい。  帳票フォームでこのようなことは可能でしょうか? 無理でしたら、無理と言っていただけると諦めがつきます。 よろしくお願いします。  

専門家に質問してみよう