• ベストアンサー

トグルボタンのON/OFF

seatテーブルがあり、座席番号フィールドがあります。 そのseatテーブルに座席番号が入力されたとき トグルボタンをONにしたりテーブルからその座席番号が削除されたら、OFFにするといったことはできるんでしょうか? たとえばA-1といった座席番号でトグルぼたんが、A-1とします。 また不可能であれば、現在使用中の座席を一覧で認識できる別の方法があれば教えていただきたいです。 よろしくお願いします。

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

  • ベストアンサー
  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.5

AccessVBAのお勧めの本は 特に無いです。 本屋さんで適当に めくって 気に入ったので良いと思います。 自分の持っているのは Access97 アプリケーション開発テクニックAtoZ  (ちょっと古いですね)と Access2000 Webデーターベスプログラミングの2冊です。 97 の方は VBAのページは半分にも満たないです。 入門書的な本です。 2000 の方は ちょっと実践的な感じです。 今では、それぞれ、Access最新バージョン用のが出ていると思います。

Hugh
質問者

お礼

近くの本屋では数が少ないので大きな本屋で探してみたいと思います。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.4

#2 の回答に対する補足 で 色を変える対応です。 Private Sub コマンド12_Click() Dim Db As Database Dim Rs As DAO.Recordset Dim Tg As Control Set Db = CurrentDb() Set Rs = Db.OpenRecordset("seatテーブル") '総ての トグルボタンを OFF に設定 For Each Tg In Me.Controls With Tg If .ControlType = acToggleButton Then .Value = False '------------------ 文字を黒色にセット .ForeColor = 0 End If End With Next 'seatテーブルに入力されている 座席番号 と '同じ名前の トグルボタンを ON にする Rs.MoveFirst Do Until Rs.EOF = True Controls(Rs!座席番号) = True '------------------ 文字を赤色にセット Controls(Rs!座席番号).ForeColor = 255 Rs.MoveNext Loop Rs.Close Set Rs = Nothing End Sub

Hugh
質問者

補足

完璧にできました。 どうもありがとうございました。 それと今後もっと自分で勉強していきたいのですが、 AccessVBAのお勧めの本があったら教えていただけませんか?

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

やりたい事の基本は下記ではないですか。 テキストボックスに「B-1」と入れると、関連付けされた、トグルボタンが凹み、「B-1売切れ」とボタンが 変ります。 アクセスVBA(97)です。 97ではコントロール配列が使えないようですので、泥臭くなりますが。少数例でテスト済み。下記tbでArray関数でも失敗して、泥臭くなっています。 トグルボタンは複写で2個目以後は作成しました。 A-1より何番目を割り出すロジックは実情に応じていろいろ考えられると思います。 Option Compare Database Option Explicit Private Sub テキスト4_AfterUpdate() Dim i As Integer Dim j As Integer Dim tb(10) Dim s As String Dim tbname(10) As Object Set tbname(1) = トグル0 Set tbname(2) = トグル1 Set tbname(3) = トグル2 Set tbname(4) = トグル3 tb(1) = "A-1" tb(2) = "B-1" tb(3) = "C-1" tb(4) = "D-1" 'MsgBox テキスト4.Text s = テキスト4.Text '----- For j = 1 To 4 If s = tb(j) Then i = j GoTo p01 End If Next j MsgBox "座席該当なし" Exit Sub '----- p01: tbname(i).Value = -1 tbname(i).Caption = s & "売切れ" End Sub

Hugh
質問者

補足

ありがとうございます。 ボタンが押されると売りけれと文字が変わるのは非常に興味があります。 ただ、座席が100席以上もあるので全部記述するにはちょっと戸惑っています。 ちなみにAccess2000を使っています。

全文を見る
すると、全ての回答が全文表示されます。
  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.2

お役にたててよかったです。

Hugh
質問者

補足

ありがとうございます。 もし可能でしたら教えてください。 トグルボタンのテキスト名がたとえばA-1とかになっているのをボタンをONの時には色を赤に変えてオフにするとまた黒に戻るってのはできますか? わがまま言って申し訳ありませんがよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.1

トグルボタンの名前がそれぞれ A-1 , A-2 , A-3 , A-4 , A-5 B-1 , B-2 , B-3 , B-4 , B-5であって、 seatテーブルの 座席番号に A-1 や B-3 などと入力した場合に トグルボタンの A-1 と B-3 が ON して、 それ以外の トグルボタンが OFFになる方法で良いのですよね? これは、同一フォーム上に コマンドボタン1(名前はコマンド1) を配置し、 これをクリックしたときの イベントとしました。 Private Sub コマンド1_Click() Dim Db As Database Dim Rs As DAO.Recordset Dim Tg As Control Set Db = CurrentDb() Set Rs = Db.OpenRecordset("seatテーブル") '総ての トグルボタンを OFF に設定 For Each Tg In Me.Controls With Tg If .ControlType = acToggleButton Then Tg.Value = False End If End With Next 'seatテーブルに入力されている 座席番号 と '同じ名前の トグルボタンを ON にする Rs.MoveFirst Do Until Rs.EOF = True Controls(Rs!座席番号) = True Rs.MoveNext Loop Rs.Close Set Rs = Nothing End Sub なお、DAO 3.* を参照設定してください。

Hugh
質問者

お礼

入れ違いになったらすいません。 私のやりたいことが完璧にできました。 どうもありがとうございました。

Hugh
質問者

補足

早速ありがとうございます。 コマンドボタンはひとつで委員ですよね? それから最後の行の DAO 3.* を参照設定 、、、、 のことがよくわからないんですが教えていただけませんでしょうか? よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESS2000のトグルボタン

    よろしく、お願いいたします。 ACCESS2000+WinXPproを使用しております。 例えば、トグルボタンを5つ作って、3つまでは”ON”にすることはできるが、4つめを”ON”にした場合、メッセージボックスを表示するなど、入力している人に警告を与える方法はありますか? よろしく、お願いいたします。

  • トグルスイッチについて教えて下さい。

    2種類の入力を連動させてON、OFF出来る機能をもったトグルスイッチを探しています。 トグルスイッチはいろいろあるようですが、どれがこの機能を持っているのでしょうか? お願い致します。

  • トグルボタンの帳票フォーム連動って・・・

    access2007で・・・ サブフォーム(帳票フォーム)に表示させているテーブルにトグルボタンを連動させたいのですが・・・ イメージ的には以下になります。 例えば (Table_A) カラム1    | カラム2 | カラム3 | カラム4 |カラム5 トグルボタン | 1998年 |  田中 | 35歳 | 東京 トグルボタン | 1999年 |  佐藤 | 56歳 | 神奈川 トグルボタン | 2000年 |  吉田 | 21歳 | 埼玉 トグルボタン | 2001年 |  伊藤 | 25歳 | 千葉 トグルボタン | 2002年 |  高橋 | 32歳 | 東京 ・・・みたいな感じで、作ってはみたのですが、トグルボタンを押すと、全部が押されてしまいます・・・ 無理ですかね~?

  • VBA エクセルでのトグルボタン 楕円について

    お世話になります 【概要】 トグルボタンクリック時、楕円の挿入について 【わからないこと】 トグルボタンクリック時(ON)に楕円(透明)を挿入(できればセル指定ではなく場所指定)しOFFの時は楕円が消える仕組みを作りたいのですが、わかる方よろしくお願い申し上げます。 又、複数ボタン生成する予定なのでボタンクリック時に色など付けば幸いです。

  • 容量の大きなトグルスイッチ探しています

    ※宜しくお願いします。私の父が30Aもしくは25A対応のトグルスイッチ2回路2接点(ON-OFF-ON)(中点OFFあり) という製品を探しています。 容量が小さいのはあるのですが、なかなか探しきれません。 どなたかネットでの入手方法を教えていただけないでしょうか? 再度、宜しくお願いします。

  • トグルボタンの文字色

    windows-xp、アクセス2003、を使っています。 フォームに複数のトグルボタンを置き、下記コードをつけました。 そこで質問です。 「トグルボタンがONの時は赤色、OFFの時は黒色にする。」ということをしたいです。 できましたら、下記コードに書き加えて頂けませんでしょうか。 Private Sub CH01_Click() If CH01 = -1 Then CH02 = 0 CH03 = 0 End If End Sub Private Sub CH02_Click() If CH02 = -1 Then CH01 = 0 CH03 = 0 End If End Sub Private Sub CH03_Click() If CH03 = -1 Then CH01 = 0 CH02 = 0 End If End Sub すみませんが、宜しくお願い致します!!

  • トグルスイッチについて

    トグルスイッチについて。 単極3投、2極3投、3極単投、3極双投、3極4投、4極双投等の 詳しくわかりやすい説明をお願いしたいです。 わかりやすい図等を載せているHPとかもご存知でしたら 宜しくお願い致します。 あと、LED2列を下記ABCまたはDも含めたような点灯制御をしたい時 A---LED1…on LED2…on B---LED1…on LED2…off C---LED1…off LED2…off D---LED1…off LED2…on(出来ればこれも) 1個のトグルスイッチで可能でしょうか? 可能な場合、どのようにすれば良いかご教授お願い致します。 また、上記をもう1セット増やして2セットの場合に 全ての動作を1個のスイッチで制御は不可能でしょうか? 宜しくお願い致します。

  • 「この回答は参考になった」ボタンのON・OFFについて

    「この回答は参考になった」ボタンが、クリックできるようにON状態になっているときと、反転してクリックできないOFF状態になっているときがありますが、この違いはどうして生じているのでしょう? 「この回答は私にとっても役に立ったなぁ~」と感じても、クリックできない状態になっていると何だか残念な気持ちになります…。 ※自分がした回答に対してはクリックできないようになっているのは既に認識済みです。

  • 複数のsoundを1つのon/offボタンで制御したい。

    どなたか助けてください! 1~200フレームまで(仮にパートAと呼びます)にサウンド1をループさせ、 201~400フレームまで(仮にパートBと呼びます)にサウンド2をループさせ、 それを1つのon/offボタンで制御しなければならない状況です。 例えば、100フレームあたりでsoundをoffをしたらサウンド1が消え、 300フレームあたりでsoundをonしたらサウンド2が聞こえる、というようにしたいのですが可能でしょうか? 1つのsoundの制御しかやったことが無いのでお手上げです。 助けてください。よろしくお願いします。

    • ベストアンサー
    • Flash
  • Access2003 削除クエリで式1フィールドがドンドン作成される

    Access2003で削除クエリを作成しました。 抽出条件に「Aフォーム」内のトグルボタン「チーム1」(オプショングループ名=商品区分)をクリックした時に、[商品番号]が100より小さいものを、トグルボタン「チーム2」をクリックした時には、[商品番号]が100以上のものを抽出するよう入力しました。 【クエリデザインビューの状態↓】 フィールド  | [商品番号] | AA: [forms]![Aフォーム]![商品区分] 抽出条件 | < 100   | 1 または  | >= 100  | 2 一応上記で削除クエリは思うように実行できたのですが、このクエリを閉じてまた開くとフィールドAAと同じ内容で『式1:』フィールドが作成されてしまいます。また閉じて開くと、同じ内容で『式2:』が、次は『式3:』が…とドンドンと作成されてしまいます。 Access2003以外のAccessでは「式」フィールドは増えなかったです。 この『式~:』フィールドが勝手に作成されないようにするには、どうすればいいのでしょうか?もしくは、最初の削除クエリの作り方がおかしいのでしょうか? 教えて頂きたく、よろしくお願いします。

専門家に質問してみよう