Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1591 / 2272 ツリー ←次へ | 前へ→

【6339】帳票フォームにて選択した行の背景に色を... okain 05/9/22(木) 14:50 質問[未読]
【6346】Re:帳票フォームにて選択した行の背景に色... 小僧 05/9/22(木) 18:09 発言[未読]
【6371】Re:帳票フォームにて選択した行の背景に色... okain 05/9/28(水) 9:44 お礼[未読]
【6379】Re:帳票フォームにて選択した行の背景に色... しましま 05/9/29(木) 2:53 発言[未読]

【6339】帳票フォームにて選択した行の背景に色を...
質問  okain  - 05/9/22(木) 14:50 -

引用なし
パスワード
   はじめまして、
ここでは、初めて質問しますが、よろしくお願いします。

質問なのですが。

社員管理表をACCESSで作ってまして。
帳票フォームにて表を作っています。
そこで、選択した情報の行の背景の色を変える方法はないのでしょうか?
一応、検索してみたのですが、帳票フォームにて交互に色をつけるのみしか
見当たらなかったので。質問しました。
ご教授 お願いします。


(例)

=============フォームヘッダー====================
社員名[___]          [検索ボタン]
=================詳細===========================
社員名[*****] 年齢[**] 住所[*******]
=============フォームフッター====================

(例 終わり)


(注意*1)
「社員名[*****] 年齢[**] 住所[*******]」
の部分は検索に引っかかった数だけ表示されます。

(要望)
「社員名[*****] 年齢[**] 住所[*******]」の行を選択した場合
背景の色を黄色に変えたい。


こんな感じで、言いたい意味が分かりますでしょうか?
お願いします。

【6346】Re:帳票フォームにて選択した行の背景に色...
発言  小僧  - 05/9/22(木) 18:09 -

引用なし
パスワード
   ▼okain さん:
こんにちは。

>一応、検索してみたのですが、帳票フォームにて交互に色をつけるのみしか
>見当たらなかったので。質問しました。

過去ログの交互に色をつける方法の場合は
条件式書式を使っていませんでしたでしょうか?

帳票フォームで作られる詳細部のコントロールは
レコードが増えると複数に見えるのですが、
実体は1つなので小細工が必要になってしまいます。

以下小細工です…。

フォームヘッダーにテキストボックス「txt社員名」を配置。

詳細部の枠いっぱいにテキストボックス「txt背景」を配置し最背面へと移動。

「txt背景」の条件付書式に

「式」「 [社員名]=[txt社員名] 」という条件で背景を黄色に設定。


フォームのプロパティから「レコード移動時」を選び右側の「...」をクリック。
コードビルダを選択すると表示される画面に、

Private Sub Form_Current()
  Me.txt社員名 = Me.Recordset![社員名]
End Sub

と記述して閉じる。

選択するレコードが移動する度に
背景色が変わるように見えるようになりませんでしょうか?

(あとは txt社員名を不可視にでもして下さい。)

【6371】Re:帳票フォームにて選択した行の背景に色...
お礼  okain  - 05/9/28(水) 9:44 -

引用なし
パスワード
   >過去ログの交互に色をつける方法の場合は
>条件式書式を使っていませんでしたでしょうか?
>
>帳票フォームで作られる詳細部のコントロールは
>レコードが増えると複数に見えるのですが、
>実体は1つなので小細工が必要になってしまいます。
>
>以下小細工です…。
>
>フォームヘッダーにテキストボックス「txt社員名」を配置。
>
>詳細部の枠いっぱいにテキストボックス「txt背景」を配置し最背面へと移動。
>
>「txt背景」の条件付書式に
>
>「式」「 [社員名]=[txt社員名] 」という条件で背景を黄色に設定。
>
>
>フォームのプロパティから「レコード移動時」を選び右側の「...」をクリック。
>コードビルダを選択すると表示される画面に、
>
>Private Sub Form_Current()
>  Me.txt社員名 = Me.Recordset![社員名]
>End Sub
>
>と記述して閉じる。
>
>選択するレコードが移動する度に
>背景色が変わるように見えるようになりませんでしょうか?
>
>(あとは txt社員名を不可視にでもして下さい。)

お返事遅くなってすいません。
ありがとうございます。

後日上記のようにやって
行ってみます。

ほんとうに ありがとうございます。

【6379】Re:帳票フォームにて選択した行の背景に色...
発言  しましま  - 05/9/29(木) 2:53 -

引用なし
パスワード
   最近私も同じことを考え、編み出した方法です。

1.まず、一覧フォームに使用しているレコードソースの「テーブル」に [カレント] と
  いう「Yes/No型」のダミーフィールドを作成します。

2.次に一覧フォームの「フォーム移動時イベント」に下記のコードを設定します。

Private Sub Form_Current()
Const myTBL As String = "T_一覧テーブル"   '元となるテーブル

  DoCmd.SetWarnings False
  '1.今カレントになっているフラグを消し、2.新しい行のカレントフラグをオンにする
  DoCmd.RunSQL "UPDATE " & myTBL & " SET カレント=False WHERE カレント=True;"
  DoCmd.RunSQL "UPDATE " & myTBL & " SET カレント=True WHERE " & "ID=" & id & ";"
  DoCmd.SetWarnings True
   
  Me.Repaint    '移動があまりにも早いと、画面が更新されないことがあるので再描画
       
End Sub
(上記例では、テーブルの主キーに「id」を使っています)
これで移動に合わせ、選択されているレコードの[カレント]フィールドに常にレ点が入り
ます。

3.ハイライト表示させたい全てのテキストボックス等のコントロールの条件付き書式に、
  [式]  式の内容→ [カレント]=True
  
  と設定します。

以上でできるはずです。
お試しあれ。 (^o^)

1591 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078230
(SS)C-BOARD v3.8 is Free