• ベストアンサー

Access2000 表形式でのボタン表示・非表示

似たような質問は見つけたのですが、問題解決出来ませんでしたので質問させていただきます。 Access2000でフォームを表形式で作成しました。 テーブルの値が「0」なら表のボタンを表示しない。 テーブルの値が「1」以上ならボタンを表示する。 上記のような仕組みを作成しています。 テキストボックスを重ねる方法を見つけ、トライしてみましたがうまくいきません。 Accessに詳しい方がいらっしゃいましたら、ご教授のほどよろしくお願いします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>フォームを表形式で作成しました >テーブルの値が「0」なら表のボタンを表示しない。テーブルの値が「1」以上ならボタンを表示する 表形式のフォーム上にボタンを配置して表示・非表示を切り替えるのは難しいですね。 表形式でボタンを配置すると表示される行の全てのボタンは同じ名前なのでフォームのレコード移動時などのイベントやコントロールの更新後処理のイベントに If フィールド名 = 0 Then Me.ボタン名.Visible = False Else Me.ボタン名.Visible = True End If としてもフォーカスのあるレコードの0か1以上の値で全てのボタンは表示されたり非表示になったりと同じ動作をしてしまいます。例えば5行レコードが表示されているとしてフォーカスが最初のレコードにあり参照するフィールドの値が0であれば5行のボタンは非表示になり他行のレコードに移動した際に参照しているフィールドの値が1以上なら5行全てのボタンが表示されるということです。 単票フォームなら可能です。 >テキストボックスを重ねる方法を見つけ、トライしてみましたがうまくいきません テキストボックスを使用してどのように処理したか不明ですが・・。 例えば参照するフィールドを[数値]としてテキストボックスをText1とした場合。 Text1のコントロールソースに =IIf([数値]=0,"No","Yes") とすれば0の場合Text1にはNo、0以外ならYesと表示されますがこの様な感じなのでしょうか?

taminojin
質問者

お礼

おお、上記の方法、すごい参考になります! 早速やってみます。ありがとうございます。

その他の回答 (3)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

テキストボックスを重ねるのではなく テキストボックスそのものをボタン代わりに使用すればいいのでは 立体表示を浮き出しにし 条件付き書式で >テーブルの値が「0」なら 無効になるようにしておけば、表示はされますが フォームの色でで塗りつぶされたものになり クリックしてもイベントは起こりません

taminojin
質問者

お礼

画期的な方法ですね! テキストボックスを浮き出しにすればクリックしやすいでしょうし。 ボタンとしてのアクションはのぞめないですけど、下の方法で出来なかったら試してみたいと思います。 ありがとうございます。

noname#22222
noname#22222
回答No.2

表形式ということは、複数のレコードの複数の列がExcel風に並んでいると推察します。 さて、「テーブルの値」ということですが、テーブルには値という概念はありません。 ということは、列1、列2・・・列Nの中の列Xの値が0ないし1ということでしょうか? ならば、列Xの型は、Yes/No型でしょうか? 次に、ボタンを表示するというのも理解出来ません。 列Xを視覚的に表示しようと、0に対応するTextBox1、1に対応するTextBox2を用意して、どちらかを選択的に表示しようとしているのでしょうか> 質問者は、この非表示、表示の設定を、どのタイミング、もっと言えば、どういうイベントプロシージャに記述していいか判らないので困っているのですか? まあ、こういう疑問に答えてくれないと回答のしようがありません。

taminojin
質問者

お礼

わかりにくい説明ですいませんでした・・・。 テーブルにエラー件数の列があり 0件 2件 5件 0件 1件 ・ ・ ・ 上記テーブルの値で「0件」ならデータ補正ボタンを表示しない。(エラーが無いから) 「1件」以上ならボタンを表示する(エラーを補正するため) というものを作成しようと思ったのです。

  • Miuccia
  • ベストアンサー率46% (28/60)
回答No.1

こんにちは。 テーブルの値はどうやってもってくるんでしょうか。 常に1件しかないのであれば、DLOOKUP(フィールド名,テーブル名)でひっぱってこれると思います。 ひっぱってこれたら、どっかのイベントの中に、下の文を書き込めばいいと思います。 if テーブルの値 = 0 then me.ボタン名.visible=False else me.ボタン名.visible=True end if

taminojin
質問者

お礼

ご教授ありがとうございます。 実はmiucciaさんの方法を私も最初はとっていたのですが ボタンはレコードソースと非連結なのでボタンが消えるとすべてのボタンが消えてしまうのです。 親切なアドバイスありがとうございます。

関連するQ&A

  • ACCESSの表形式で、レコードをクリック→詳細を表示させたい

    表題の通りなのですが、ACEESSで、表形式でレコードを表示させています。 これらの詳細を書いたものを、別フォームで作成しています。 要はこの2つを、 表形式のどこかにボタン配置→そのボタンをクリックすると、別フォームで該当テーブルが起動され、見ることができる、 ということを行いたいと思っています。 これらを行うことはできるのでしょうか。 また、できるならその方法をご教授頂けませんでしょうか。 どうぞよろしくお願いします。

  • AccessのVBAにおいて,アクセスフォームに表示されている「値」を

    AccessのVBAにおいて,アクセスフォームに表示されている「値」を変数の中に格納したい。  例えば,オートフォームの単票形式でフォームを作成した場合,「番号」「製品」といったフィールドが2個あるテーブルを使うと,「番号」「製品」という名前のテキストボックスが2個ほどできます。 (フィールド名やテキストボックス名は問題ではありません。) このフォーム上に「ボタン」を配置し,このボタンをクリックした時に,「製品」というテキストボックスの内容を,メッセージボックスで表示させたい。 MsgBox (Me.製品.Text) と書いてもエラーとなります。 実際には,このフォームで欲しいデータを見つけた時,ボタンクリックで,テキストボックスに表示されている内容をグローバル変数に格納したいのですが,方法が分かりません。 Access 初心者です。どなたかよろしくお願いします。

  • アクセス フォーム単表形式について

    いつもお世話になります。 アクセスの単票形式フォームで、テキストボックスに数値を表示させています。タイマーで元データのテーブルを読み込んだ時に、最後に更新したテキストボックスがアクティブになっている(テキストボックス上でカーソルが点滅している)のですが、アクティブを解除する方法はありますでしょうか。

  • ACCESSのコマンドボタンにデータを表示

    ACCESSのコマンドボタンはフォームに 貼り付け、このボタンを押されたとき 決められた動作を実行します。 このボタンがフォームに表示されるとき ピクチャーか文字により表示されます が このボタンの表示を内部のデータを表示できませんか つまり、テキストボックスにテーブルにある  データを表示するように よろしくお願いします

  • MSアクセスの表形式で、ボタンをクリック→データを抽出させるには‥

    MSアクセスを使い、データを表形式で表示させています。 同じ日付のレコードが沢山あるのですが、本日分のみを表形式で一覧表示させるにはどうすればよいでしょうか。 また、例えばボタンをクリックすれば、表の中身だけが入れ替わり、 翌日分が表示される、という風にするにはどうすればよいでしょうか。 今はテーブルからクエリで本日分だけ抽出し、それを表示させているのですが、 前日、前々日、3日前‥と遡ろうとするとその分だけクエリを作成しないといけないので、 何かやり方が間違っていると思いますので‥。 ご教授のほど、よろしくお願いします。

  • Accessフォームパラメータについて

    Access2000(2002のライセンスがあったのでアップグレード予定)で、プログラムを作ることになりました。 フォームAに、テキストボックスで文字を入力させます。 その文字をキーにして、データベースを検索し、 その情報をフォームBに上記キーをヘッダにテキストボックスで表示し、 複数業の表形式で、データを全て表示・スクロールしたいと思っています。 その時に、どのようにしてこのキーを利用していけば実現できるのか、イメージできないで困っています。 フォームAのテキストの値をキーにデータベースを読み、 該当するレコードを、全て、表形式のフォームBに表示する。 同時に、フォームAのテキストの値であるキーはヘッダ部に表示し、値が変更され、更新ボタンを押せば、検索しなおして、表示しなおす。 表示された明細には、変更ボタンを儲けて、 変更フォームで表示して更新させて、終わったら画面が表形式に戻ってくる。 こんな機能なのですが・・・。 パラメータ値であるAの値の受け渡しがうまくいかず困っていますので、どうしたら、実現できるか教えてくださいませ。 ややこしくてすみません。 アドバイス宜しくお願いします。

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

    現在、Access2000で表形式のフォームを作成しています。 一点行き詰まっていることがあるので、どなたか教えて下さい。 いくつか項目がある表形式のフォームがあります。 項目2には日付を入れるのですが、隣にボタンを作り押すことにより 項目2に今日の日付が入るようにします。 そこで質問ですが、項目2に既に日付が入っている場合は、ボタンを 表示させたくないのですが、プロパティの”可視/Visible/”を触ると 表全部(行)に見えたり見えなかったりしていますます。 1行毎に制御することはできないのでしょうか? 詳しい方、どうか教えて下さい。お願い致します。 --こうなってしまう--------------------------- 項目1   項目2        項目3 ・・・ AAA   2009/11/24[ボタン]  XXX BBB           [ボタン]  YYY CCC   2009/11/25[ボタン]  ZZZ --こうしたい--------------------------------- AAA   2009/11/24       XXX BBB           [ボタン]  YYY CCC   2009/11/25       ZZZ

  • Accessのフィールドに不要なアップダウンボタンが表示されるのは?

    既存のデーターベースからCSV形式でデーターをインポートし、アクセス 2003に取り込みテーブルを作成しました。そのテーブルを基に表形式のフォームを作成したところ、ほぼすべてのフィールドに小さいアップダウンボタンが表示されます。これはなぜでしょうか?削除の方法をお教え下さい。下記のようなものです。 www.ky-housing.jp/oshiete-goo/q-1.jpg

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

  • ACCESS2つのテーブルの情報を表形式Fにしたい

    中古車販売店です。 ・顧客テーブル・・お客様の情報 ・車両情報テーブル・・次回車検日と車名など 顧客IDでリレーションを設定しています。 車検を控えたお客さんにDM発送するため、 ダイアログボックスで指定した車検日(例:2011年3月)のお客さんを一覧表で表示したいと思っています。 いきなりフォームを作成しようとすると、どちらかがサブフォームという形になり、 思うような一覧表にできません。 表形式で、1名が1行に表示されるようなフォームを作成したいと考えています。 手順・方法をご教授ください。 よろしくお願いいたします。