アクセスのテーブルにあるYes/No型のチェックボックスを、コマンドボタンを押すことによって、全てのレコードをYes(チェックが入っている状態)又はNo(チェックが入っていない状態)にする
方法を教えてください。自分で、参考書をみながら試みたのですが、NoをYesに変えられたのですが、全部Yesにならなくて困っています。
(NoはYesになりますが、元々YesだったところがNoになってしまう)

まだ、VBA初心者ですので、小学生(実際は中年?)にも解るように教えていただければ幸いです。よろしくお願いします。

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

A 回答 (2件)

>・・・VBA初心者ですので・・・


との事ですのでVBAがよろしいのですよね(^ ^)

テーブル名「Test」、フィールド名「Check」とします。

「Yes」にする場合。

Dim strSQL As String

strSQL = "update Test set Check = true"
DoCmd.RunSQL strSQL

で全てのレコードが更新されます。
「No」にする場合は「true」→「false」へ変更してください。

この回答への補足

早い返事ありがとうございました。
早速試してみました。
ウォー、出来た!!って感じだったんですが、実は、もう少し異なることを考えていました。
テーブルを基にして、フォームを作成し、チェックボックスをトグルボタンに変えました。
そこで、フォームのフッタに配置したコマンドボタン(すべてON)をクリックするとすべてのレコードのトグルボタンを一括してONに出来ないかと思ってやってみたのですが
うまくいきません。きっとテーブルのチェックボックスをONにすることができれば実現するのではないかと考え、上記のような質問をいたしました。
そこで、実行してみたのですが、テーブルの方はうまく変わっているようなのですがフォーム上のトグルボタンがうまく変わりません。何個か残ってしまいます。
この現象は、どのように回避すればよいのでしょうか。ご教授いただければ幸いです。

補足日時:2001/11/08 16:07
    • good
    • 0

最後に一行



Me.Requery

と、追加してください。
    • good
    • 0
この回答へのお礼

お礼が大変遅くなって申し訳ありませんでした。
接続できる環境で無くなってしまっていたので・・・。
早速、実行してみました。うまくいった。・・・と思ったのですが
状況は改善されません。
なぜか?解りませんが、もう少し全体を見直したいと思います。
大変お世話になりました。また、なにかありましたら、よろしくお願いします。

お礼日時:2001/11/20 08:30

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

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

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

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

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

QEXCELのチェックボックスについて

EXCEL2003を使用しています。

■質問項目があり、回答する複数のセルにチェックボックスを配置してあります。
A列:質問
B列:回答のチェックボックス
C列:回答のチェックボックス
D列:回答のチェックボックス

Z列:OK 又は NGと表記したい。

■各列の回答チェックボックスが全てonになっていたらOK、1つでもoffになっていたらNGと、Z列に表記させたいのですが、どのような式になりますか?

ご回答の程、よろしくお願いいたします。

Aベストアンサー

チェックボックスの "リンクするセル" を利用するのが手早いと思います。
印刷範囲外に true とか false を出力するようにして、そこをあとで集計するとして、その結果をZ列に返しては如何でしょうか?

たとえば、B2のチェックボックスのリンク先を、ずっと右のほうの、AB2というセルにリンクさせます。

そうすると、B2のチェックボックスのチェックしたかどうかが、
true もしくは false で、AB2のセルに表示されます。
これを、C2のチェックボックスをAC2にリンク、
D2のチェックボックスをAD2にリンク。。。という具合に
Y2をAY2にリンクというところまで続けていきます。

次に、AZ2のところに、↓を書き込みます。
=countif(AB2:AY2,"TRUE")
すると、AZ2のところに数字が出ます。

あとは、Z2のところに
=if(AZ2=24,"OK","NG")
と入力してあげれば、思ったとおりに出来るはずです。

3行目以降は、2行目を丸ごとコピーすれば使えます。

チェックボックスとリンクの仕方は下記サイトを参考にしてください。

参考URL:http://kokoro.kir.jp/excel/checkbox.html

チェックボックスの "リンクするセル" を利用するのが手早いと思います。
印刷範囲外に true とか false を出力するようにして、そこをあとで集計するとして、その結果をZ列に返しては如何でしょうか?

たとえば、B2のチェックボックスのリンク先を、ずっと右のほうの、AB2というセルにリンクさせます。

そうすると、B2のチェックボックスのチェックしたかどうかが、
true もしくは false で、AB2のセルに表示されます。
これを、C2のチェックボックスをAC2にリンク、
D2のチェックボックスをAD2にリン...続きを読む

QAccessでYes/No参照(チェックボックス)

2つのテーブルがあります。
顧客テーブルは顧客IDと質問
質問テーブルは顧客テーブルの質問を管理するテーブルです。
質問テーブルのフィールドは
質問ID(オートナンバー)と
質問(テキスト)と
チェック(Yes/No)です。
質問の数は不定で
例えば
ID 質問 チェック
1  A    □
2  B   □
3  C   □
という具合にテーブルを作成します。
顧客テーブルの質問フィールドが質問テーブルを参照し
チェックボックスにチェックを入れられるようにしたいのですがどうしてもチェックのところが□ではなく
Yes/Noとなってしまいます。
最終的には質問Aに対するチェックの数
質問Bに対するチェックの数
全てのチェックの数などを計算したいのですが
どのようにしたら良いでしょうか。
よろしくお願いします。

Aベストアンサー

> チェック(Yes/No)の表示が Yes/No になってしまう。
◎テーブルデザインで
 データ型は Yes/No型に なっていると思いますが、
 ルックアップの 表示コントロールが
 テキスト ボックス に なっているようです。
 これを チェック ボックス に変えれば □ になります。

> 全てのチェックの数などを計算
◎選択クエリで 集計します。
 フィールド名 ”質問”の集計は ”グループ化”を選択
 フィールド名 ”チェック”のとこをは IIF関数を使い次のようにします。
 件数: IIf([チェック]=Yes,1,0)
 集計は ”合計”を選択します。

 これで、A、B、C・・・ 別に 件数が出ます。

QExcelでセルの値によりチェックボックスを操作

EXCEL2007で作業しています。
シートにチェックボックスを配置しています。

・セルA1の値が「あ」だったら
チェックボックス1にチェックを入れる。

・チェックボックス2にチェックが入っていたら
オートシェイプ2を表示させる

上記2つを実現したいです。
どちらかひとつでもおしえていただければと思います。

よろしくお願いいたします!

Aベストアンサー

>「あ」と入力するシートとチェックボックスを配置しているシートが別シート

手順:
これまでのマクロを「漏れなく全部消去する」

改めて
チェックボックスのシートを開く
開発タブでデザインモードを選択,チェックボックスを右クリック,コードの表示を開始
下記のマクロを記載する

private sub CheckBox1_Click()
 application.enableevents = false
 worksheets("「あ」のシート名").range("F20") = iif(me.checkbox1,"あ","")
 application.enableevents = true
end sub

ファイルメニューからエクセルに戻り,忘れずに開発タブで「デザインモード」を終了する



「あ」のシートを開き,シート名タブを右クリック,コードの表示を開始
下記のマクロをコピー貼り付ける

private sub Worksheet_Change(byval Target as excel.range)
 if target.address = "$F$20" then
  application.enableevents = false
  worksheets("チェックボックスのシート名").checkbox1 = target = "あ"
  application.enableevents = true
 end if
end sub


以上です。

>「あ」と入力するシートとチェックボックスを配置しているシートが別シート

手順:
これまでのマクロを「漏れなく全部消去する」

改めて
チェックボックスのシートを開く
開発タブでデザインモードを選択,チェックボックスを右クリック,コードの表示を開始
下記のマクロを記載する

private sub CheckBox1_Click()
 application.enableevents = false
 worksheets("「あ」のシート名").range("F20") = iif(me.checkbox1,"あ","")
 application.enableevents = true
end sub

ファイルメニューからエクセ...続きを読む

Qアクセス:Yes/No型→チェックいれたら、"○"を表示。

あるフィールドの書式をYes/No型にしてます。
そして、チェックを入れたらフォームビューでは"○"を表示する。

というようなことはできますか??
アクセス初心者です。。
すみませんが、よろしくお願いいたします。

Aベストアンサー

であれば、論理式を組み合わせれば済む事です
=iif([フィールドA]=0,"",iif([フィールドC]=0,"","○"))
こんな感じですかね

QExcel2007 でのチェックボックスの名称

Excel2007 でフォームコントロールのチェックボックスのオブジェクト名のつけ方を教えてください。

普通にチェックボックスをつくって、プロパティを表示してもオブジェクト名をつけれるところがありません。

ActiveXのチェックボックスだと該当するものがでてきます。

やり方を教えて頂ければ助かります。

Aベストアンサー

ぁ、失礼。
[オブジェクトの選択]は2007では[ホーム]タブの[編集]-[検索と選択]にあります。
さらにその下の[オブジェクトの選択と表示]メニューを使うと、
このメニューからでもオブジェクト名を変更する事ができます。

ついでにVBAで名前を設定する例。
'選択して
If TypeName(Selection) = "CheckBox" Then
  Selection.Name = "Check_1"
End If

'あるいはインデックス順にLoopして連番、またはTopLeftCell情報の利用、など
Dim cb As CheckBox
Dim i As Long
For Each cb In ActiveSheet.CheckBoxes
  i = i + 1
  cb.Name = "Check_" & i
  'cb.Name = "Check_" & cb.TopLeftCell.Address(0, 0)
Next

Qyes/no型のチェックができない(アクセス2003)

フィールドのデータ型をYes/No型にして作ったものを選択クエリで選んだ後に、チェックするもしくは外すということができません。テーブルから直接データ編集する場合は問題なくチェックできています。

原因になにがあるのでしょうか。不勉強で申し訳ございません。アクセス2003です。
ご教授お願いいたします。

Aベストアンサー

クエリでデータの変更が出来ない場合。
(1)
多対一対多のリレーションシップが設定された 3 つ以上
のテーブルに基づくクエリでは、クエリで直接データを更新す
ることはできません。フォームやデータ アクセスページでは、
データを更新できます。フォームの [レコードセット]
プロパティを [ダイナセット (矛盾を許す)] に設定すると、
クエリに基づいてデータを更新できます。

(2)
クエリの "固有の値" プロパティが [はい] に設定されて
いると、クエリでデータを更新できません。この問題を回避
するにはクエリの "固有の値" プロパティを [いいえ] に設定します。

(3)
クエリまたは基になるテーブルに対して [データの変更]
権限がない場合は、データを更新できません。この問題を回
避するには、データを変更する権限を割り当てます。

(4)
複数のテーブルやクエリを含むクエリで、そのテーブルや
クエリが、クエリのデザイン ビューで結合線によって結合さ
れていないと、データを更新できません。この問題を回避す
るには、データを更新できるようにテーブルを正しく結合
します。


以上のようなことでクエリからデータの
変更ができないことがありますが、
これらは以下のサポートページの
抜粋です。
http://support.microsoft.com/kb/328828/ja
ほかにも原因は考えられますが、
Access2003のアップデートを
行うといろいろな不都合が
解消されるようですが、アップデート
はしていますか。

また、クエリ自体はフォームか何かの
レコードソースになっているのですか。

クエリ内の他のフィールドは変更
できるのですか。

クエリでデータの変更が出来ない場合。
(1)
多対一対多のリレーションシップが設定された 3 つ以上
のテーブルに基づくクエリでは、クエリで直接データを更新す
ることはできません。フォームやデータ アクセスページでは、
データを更新できます。フォームの [レコードセット]
プロパティを [ダイナセット (矛盾を許す)] に設定すると、
クエリに基づいてデータを更新できます。

(2)
クエリの "固有の値" プロパティが [はい] に設定されて
いると、クエリでデータを更新できません。この問題を回避
するには...続きを読む

QExcel VBAのチェックボックスについて

こんばんは、Excel vbaのチェックボックスについてご教授をお願いします。

Userformを作成しています。
チェックボックスを横に4つ配置したとします。その際、常にどれか一つのチェックボックスにしかチェックできないようにしたいのです(チェックしたあとに、違うチェックボックスにチェックしたら、先にチェックしてあるのもはチェックを消したい)。

このような事をしたい場合、マクロ記述での操作になるのでしょうか?それとも、何か違う操作かコマンドがあるのでしょうか?4つ一組でたくさん並べたいので、すべてにマクロ記述となると大変かな?と思いまして・・・。もし、マクロ記述でしか方法が無い場合、マクロ記述の内容も教えて頂ければと思います。

申し訳ありませんが、よろしくお願いします。

※Excel2000を使用しています。

Aベストアンサー

チェックボックスでも出来なくはないのですが、面倒くさいですね。
オプションボタンではダメなのでしょうか?

QAccessで、yes/no型

 業者抽出クエリの中に、得意分野をチェックボックスで6個、営業地域をチェックボックスで10個作っています。
 それに対応する業者抽出フォームのフォームヘッダーに、得意分野をチェックボックスで6個、営業地域をチェックボックスで10個、抽出用コマンドボタン1個を配置しています。
 得意分野を1個&営業地域を1個選択して、そのふたつの条件を満たす抽出用コマンドボタンのSQL文はどのように書けばよいのでしょうか?

Aベストアンサー

チェックボックス名が ck分野1 ~ 6、ck地域1 ~ 10 とすると。

Private Sub コマンド0_Click()
 Dim flt As String
 flt = ""
 If Nz(Me.ck分野1, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt & "[分野1] = True"
 End If
 If Nz(Me.ck分野2, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt & "[分野2] = True"
 End If
'同様に分野6まで

 If Nz(Me.ck地域1, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt & "[地域1] = True"
 End If
 If Nz(Me.ck地域2, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt & "[地域2] = True"
 End If
'同様に地域10まで

 If flt <> "" Then
  Me.Filter = flt
  Me.FilterOn = True
  'SQL = SQL & "WHERE " & flt
 Else
  Me.FilterOn = False
 End If
 
End Sub

ベタに書くならこうなると思います。

form のfilter を使って選択しています。
SQL文にしたいのなら、
SQL = SQL & "WHERE " & flt
こんな感じで、SQL文にWHERE句を追加してください。

得意分野&営業地域を2個以上選択してもOKです。

チェックボックス名が ck分野1 ~ 6、ck地域1 ~ 10 とすると。

Private Sub コマンド0_Click()
 Dim flt As String
 flt = ""
 If Nz(Me.ck分野1, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt & "[分野1] = True"
 End If
 If Nz(Me.ck分野2, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt & "[分野2] = True"
 End If
'同様に分野6まで

 If Nz(Me.ck地域1, False) Then
  If flt <> "" Then flt = flt & " and "
  flt = flt ...続きを読む

QExcelで各行にチェックボックスを設けたのですが

よろしくお願いします。
Excel2000で表計算をしており、各行にチェックボックスをつけているのですが、行を並び替えするとチェックボックスは並び替えされません。
一緒に並び替えされるようにはできないのでしょうか?

Aベストアンサー

他の方が回答されている
『セルに合わせて移動やサイズ変更をしない』

それ以外の原因として考えられるのは
チェックボックスがその行の中に完全に納まっていないとうまくソートされないはずです。

行の高さを高くしてみてソートを試してみてください。

QYes/No型のデータ抽出

Access97で出面管理(出勤簿)を作成しています。

レポートを印刷する際請求を出す都合上、自社社員分と応援社員分とを分けるため社員名と所属が自社か応援かを分けるためのテーブルを作成しました。
その分類方法はYes/No型(True=応援社員、False=自社社員)に設定しました。
その際、氏名を選択すると自動で自社/応援かが認識できるようにしました。

その後、必要なテーブル・クエリー等を設定し、フォームから入力してみると
自社社員としてしか認識しません。
そこで該当するテーブルから入力(氏名=テキスト型・自社/応援=Yes/No型
チェックボックスONで応援扱い)するとフォーム・レポートでも
認識してくれます。

しかしこの方法では毎日同じ応援社員がいた場合その都度チェックボックスを
Onにしなければならず非常に厄介です。
しかもデータが毎日蓄積されるのでしばらく入力を忘れたりするとそれこそ手間がかかってしまいます。

どのように設定(テーブル・クエリー・リレーション等)を変更してやれば
良いのかアドバイスお待ちしております。

ちなみに現時点ではフォームから入力する際、氏名をコンボボックスで選択でき
その後連動して所属が決定するようになってます。

Access97で出面管理(出勤簿)を作成しています。

レポートを印刷する際請求を出す都合上、自社社員分と応援社員分とを分けるため社員名と所属が自社か応援かを分けるためのテーブルを作成しました。
その分類方法はYes/No型(True=応援社員、False=自社社員)に設定しました。
その際、氏名を選択すると自動で自社/応援かが認識できるようにしました。

その後、必要なテーブル・クエリー等を設定し、フォームから入力してみると
自社社員としてしか認識しません。
そこで該当するテーブルから入力(氏...続きを読む

Aベストアンサー

neiさんの言うとおり、社員区分のマスターテーブルを作るのがいいと思います。
今お使いのテーブルの社員のフィールドを社員区分マスターの社員コードに置き換えてあげることで、いちいち自社社員・応援社員の区別を今お使いのテーブルで入力しなくても良くなります。
レポートやフォームでの出力も、社員区分マスターテーブルの社員区分が1のもの、2のものを取り出すクエリーをつくってあげれば簡単だと思いますよ。
あと、Accessのサポート掲示板なんかを利用するのもいいかもしれません。
検索すると色々出てきますよ。下記URLからリンクをたどっていくのもいいかもしれません。
がんばってください。

参考URL:http://www.acc.gr.jp/kb/index.shtml


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

人気Q&Aランキング