2009-08-12 11 views
2

特定の種類のレコードに対して、少量のデータを表示するAccessフォームがあります。基本的には、名前を左側に表示し、右側には、そのレコードのIDをパラメータとして使用して実行したクエリの結果に応じて、フォームのOnLoad()関数で背景色を変更する矩形コントロールが多数含まれています。連続フォームにアクセスする - レコードごとにコントロールを個別化する方法?

これはうまくいきました。ID /名前が左側にあり、右側に31個のボックスがあり、その日が予約されていれば色分けされています:)しかし、関数はコードなので完全に任意であることは言うまでもありません。

次に、できるだけ多くのレコード/アイテムを表示するために「連続フォーム」に切り替えることにしました。しかし、残念なことに、そうではありませんでした。すべてのボックスは、最初のレコードのみに対して実行されたクエリ/機能に従って色付けされていました。私はそれがOnLoad()だからOnCurrent()に変更してもそれほど大したことではないと考えました。それが判明した、またはそれが私が読んだところでは、四角形の範囲はフォーム全体で共有されています。そのうちの1つのBackColorを変更すると、各レコードのそのボックスで変更されます。

これは、レコード単位で実行されるクエリに応じて変更することができます。何か方法はありますか?今まで私は条件付き書式(四角形にも利用可能でないし、私の正確なニーズに応えることもできないような機能)と、Access 97のテキストボックスハックを見つけることができた。事前に

感謝:)

答えて

1

あなたは、長方形は自然な解決策になるHTMLの背景から来ることができます。彼らはアクセスしていません。私は彼らがあなたのために働くとは思わない(実際には、「クルジー」は私の謙虚な意見の中でその試みを記述することができる)。

ただし、画像を表示することはできます。あなたは、それぞれのステータスが呼び出せる状態でイメージを保持します。私はこのように視覚的な表示をしました。ちょっと後に私はいくつかのコードを投稿することができるかもしれませんが、私はあなたがこれがかなり簡単に私がしなくても演奏すると思うでしょう。

追加注:これはあなたのためにうまくいくようです。あなたは、あなたのコメントに「一度だけインスタンス化されました」と心配しています。はい、それは(彼らは単なる装飾のために設計されているため)バインドされていないコントロールである四角形に当てはまります。しかし、バインドされたコントロール(Remouを参照)であるイメージコントロールを使用しています。

+0

いいえ2つの条件(予約=赤、開く=緑)がある場合、2つの画像を使用します。サブフォームは、矩形の代わりにイメージコントロールを使用します。すでに使用されている変数の後にイメージの名前を付けることができます。私は今私の人工物を見ました。ここにはない。しかし、 "画像"のヘルプ検索はすぐにあなたに指示します(VBAではなく、Accessのヘルプから始めます)。 – Smandoli

+0

私はC/C++の低レベルコーダーであり、実際には:)実際には、私は明らかに次のようなハックをしていました:31個のボックスを連続して、レコードデータを使ってコードパスに従って色を表示します。エレガントではありませんが、仕事をすることになっています。問題は明らかに、コントロールのプロパティはレコードごとではなく1回だけ共有/インスタンス化されているということです。画像はこれをどのように解決しますか?そして、あなたは画像を使って、各順列に対して31の異なる画像を意味しますか?どのような場合でも、GUIレイヤーで画像ではなくベクトル化された形状を描画するほうが好きです。詳細を教えてください:) – nielsj

+0

申し訳ありません "クルージング"周りのコメント - 決して私の心を作ることはできません:)あなたのソリューションは良いと思う。 – nielsj

0

連続した形式の未結合のコントロールはすべて同じです。条件付き書式設定を使用して、バインドされたコントロールを変更できます。

0

の変更、テキストボックス、コントロールのソースに、それぞれの長方形:

=Iif(myConditionIsMet,"ÛÛÛÛÛ","") 

「U」はゴシックで全ブロックキャラクター(ASC 219)です。

関連する問題