ACCESS初心者の者です。
質問なんですが、テーブルと連結しているテキストボックスの前景色を
変えるのにVBAを使ってやりたいのですが、どうしたらいいのでしょうか?
具体的には、
 (1)以下のような生徒フォームがあり、学籍番号、名前、自宅通学は
  テーブルと連結してます。
  学籍番号  名前     自宅通学 
  001   山田太郎   FALSE
  002   木下花子   TRUE
  003   鈴木次郎    FALSE   

 (2)生徒を上から順に舐めていって自宅通学がTRUEの者の学籍番号を赤で
  表示させたいと思います。
  上の例でいくと木下花子の学籍番号002が赤くなればいいです。

 (3)ちなみに私が作ったVBAのクラスモジュールは以下の様ですが、
  これだと木下花子だけではなくて全員の学籍番号が赤くなってしまいます。
  Me.RecordsetClone.MoveFirst
  Do Until Me.RecordsetClone.EOF
     If Me.RecordsetClone!自宅通学 = True Then
       Me!自宅通学.ForeColor = vbRed
     End If
     Me.RecordsetClone.MoveNext
  Loop

どうすればよろしいでしょうか? よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

Access2000 以上で有効な方法です。


フォームの学生番号欄を選択して、書式-条件付書式を実行します。

んで、「式」が「[自宅通学]=True」のときに、フォントの色を赤くしてやればいいでしょう。

尚、Access97以前では多分、出来ません。

不明点とかあれば、補足にてご質問ください。
    • good
    • 0
この回答へのお礼

早速の御回答ありがとうございます。
私のAccessのバージョンを書くのを忘れていましたね。
私のは、Access97なので無理ということですね。
昨日、自分でもネットや本屋でいろいろ調べてみました。
単純にラベルの色を変えることは簡単にできる様ですが、
上記の様なケースは見つからなかったので、あきらめて
いたのですがやはり無理でしたか・・・。
蛇足ですが、質問本文にあるVBAのソースの上から4行目は
Me!学籍番号.ForeColor = vbRed
の間違いですね。失礼しました。
どうもありがとうございました。また何かの折はよろしく
お願いします。

お礼日時:2001/09/06 07:25

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFALSE & TRUE について

初歩の質問ですが関数でたとえば VLOOKUP(A1,商品,0)
の式があります。
検索の型がFLASEとなっていたり 0 となっていたり
します。TRUEは 1 とか TRUE になっています。
なにか使い分けがあるのでしょうか?
分かる方教えてください。

Aベストアンサー

VLOOKUP()等における検索の型の指定は、Excelのヘルプ等の記載では、TRUE or FALSEですが、コンピュータ言語の世界では、

FALSE = 0
TRUE <> 0 (0ではない数値=0以外の数値)

という決まりがあるので、FALSEの代わりに 0 を、TRUEの代わりに 1 を使うことができます。(FALSE or TRUEと 0 or 1 とで、特に使い分けというのはないと思います。)

QMe!フォーム名.Enabled = True について

VBA初心者です。
ACCESS2003で
Me!フォーム項目名.Enabled = True
について質問があります。

Meの部分は、自分自身なので、他のフォームにあるフォームの使用不可を変更するために下記のような分にしました。

Form_フォーム名!.Enabled = True

これで実際実行すると、”オブジェクトが必要です。”
というエラーが出てしまいます。
どのようにすればよいのでしょうか。

Aベストアンサー

> Form_フォーム名!.Enabled = True

Forms!フォーム名.Enabled = True
でどうでしょうか?

あとは、そのフォームが開いていれば大丈夫だと思います。

QMe.FilterOn = True は先でも後で

Me.FilterOn = True は先でも後でも問題ないですか?

アクセスのvbaでフォームにフィルタをかけるときに
今まで
---------------------------------------
Private Sub コマンド2_Click()
Me.Filter = "フィールド = '" & "test" & "'"
Me.FilterOn = True
End Sub
---------------------------------------
とコードを書いていましたが
---------------------------------------
Private Sub コマンド2_Click()
Me.FilterOn = True
Me.Filter = "フィールド = '" & "test" & "'"
End Sub
---------------------------------------
でも機能しました。

という事は、
Me.FilterOn = Trueは
Me.Filter の前でも問題ないのでしょうか?

Me.FilterOn = Trueは
Me.Filter の後と習ったので疑問に思っています。
よろしくお願いいたします。

Me.FilterOn = True は先でも後でも問題ないですか?

アクセスのvbaでフォームにフィルタをかけるときに
今まで
---------------------------------------
Private Sub コマンド2_Click()
Me.Filter = "フィールド = '" & "test" & "'"
Me.FilterOn = True
End Sub
---------------------------------------
とコードを書いていましたが
---------------------------------------
Private Sub コマンド2_Click()
Me.FilterOn = True
Me.Filter = "フィールド = '" & "test" & "'"
End Sub
----------...続きを読む

Aベストアンサー

興味もあって2007でやってみました。


私の今までの書き方)

  If (Len(sWhereCondition) = 0) Then
    Me.FilterOn = False
    Me.Filter = ""
  Else
    Me.Filter = sWhereCondition
    Me.FilterOn = True
  End If

ここで、

Me.FilterOn = False 状態の時、Me.Filter を変更しても何も起きません

Me.FilterOn = True 状態の時、
・ Me.Filter を変更すると、再クエリが発生しました
・ Me.FilterOn = True を再設定しても再クエリされませんでした

Me.FilterOn = False 状態の時、
    Me.Filter = sWhereCondition
    Me.FilterOn = True ' ★

    Me.FilterOn = True ' ★ ' ☆
    Me.Filter = sWhereCondition ' ★

の記述にすると ★ で再クエリが発生しました。
ただ、☆ 時に Me.Filter = "" なら True にはなりませんでいた。
True にならない可能性があるので、

    Me.Filter = sWhereCondition
    Me.FilterOn = True

が正しい順と思われます。

Me.FilterOn = True 状態の時、
    Me.Filter = "" か Me.FilterOn = False でフィルタ解除されました。
Me.FilterOn = False 時に Me.FilterOn = False しても変化はありませんでした。
ただ、Me.Filter = "" とすると自動で Me.FilterOn = False に変化。
また、Me.Filter = "" 時に Me.FilterOn = True にはできませんでした。

これらの動きをまとめてみると、

    Me.Filter = sWhereCondition ' ★1
    Me.FilterOn = True ' ★2

だけで良さそうです。
(sWhereCondition = "" なら FilterOn は自動で False になって True にできない)
Me.FilterOn = True 状態の実行では、★1で再クエリ
Me.FilterOn = False 状態の実行では、★2で再クエリ
てな動きになるのでしょうか・・・


なので、ご質問への回答としては、

Me.FilterOn = True
Me.Filter = "フィールド = '" & "test" & "'"

と記述すると、
実施前 Me.Filter = "" であれば、フィルタはかからない。
実施前 Me.Filter = "" でなければ、最悪2回再クエリすることになる。
(実施前 Me.FilterOn = False だったら2回)
(実施前 Me.FilterOn = True だったら1回)
という事になるのでしょうか。


※ 私の環境でのものなので、検証はしてください。

興味もあって2007でやってみました。


私の今までの書き方)

  If (Len(sWhereCondition) = 0) Then
    Me.FilterOn = False
    Me.Filter = ""
  Else
    Me.Filter = sWhereCondition
    Me.FilterOn = True
  End If

ここで、

Me.FilterOn = False 状態の時、Me.Filter を変更しても何も起きません

Me.FilterOn = True 状態の時、
・ Me.Filter を変更すると、再クエリが発生しました
・ Me.FilterOn = True を再設定しても再クエリされませんでした

Me.FilterOn = Fal...続きを読む

QMS07-002((927198))適用後、開けないExcelファイル

お世話になります。

Microsoft office 2000を使っています。
MS07-002 Microsoft Excel の脆弱性により、リモートでコードが実行される(927198)のセキュリティ更新プログラムを適用してから、以前は、開くことができていたExcelファイルが開けなくなりました。
OSは、Windows 98/2000/XP Professionalすべてで同様の症状がでます。
ファイルをダブルクリックすると、タイトルバーには、
Microsoft Excel - file名.xls
と表示されますが、シートは表示されません。
同様の事例、対処法をご存知でしたら、お教えください。
よろしくお願いします。

Aベストアンサー

情報はこちらです。
一旦、EXCELをアンインストールし、再度インストールすることで改善するようです。
その際、問題のパッチはインストールしないこと。

http://internet.watch.impress.co.jp/cda/news/2007/01/10/14419.html

Q花子の塗りつぶしについて

花子2004を使用しています。

まず,基本図形→直方体3(透過)で直方体を作成しました。
そして,直方体の底面(下の方)だけ色を塗りたいので,『交点で塗りつぶす』を使用したら,塗りつぶしが出来ません。
試しに他の面をやってみたのですが,出来る面と出来ない面が出てきます。
どうやったら,底面だけを塗りつぶすことが出来るのでしょうか?
よろしくお願いします♪

Aベストアンサー

#1です。 追加して説明します。

「交点で塗りつぶす」を選択して、台形の4辺をクリックです。最後の4辺目はダブルクリックです。
これで、台形の塗りつぶしはできますね。

同様に、三角形も3辺を「交点で塗りつぶす」でクリック(最後はダブルクリック)で塗りつぶすことができます。


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報