Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


142 / 2272 ツリー ←次へ | 前へ→

【12865】名簿のチェックボックス 初心者 15/7/4(土) 13:59 質問[未読]
【12866】Re:名簿のチェックボックス かるびの 15/7/4(土) 14:19 回答[未読]
【12867】Re:名簿のチェックボックス 初心者 15/7/4(土) 16:52 質問[未読]
【12868】Re:名簿のチェックボックス かるびの 15/7/5(日) 0:16 回答[未読]
【12869】Re:名簿のチェックボックス 初心者 15/7/5(日) 8:43 質問[未読]
【12870】Re:名簿のチェックボックス かるびの 15/7/5(日) 12:22 回答[未読]
【12871】Re:名簿のチェックボックス 初心者 15/7/5(日) 13:12 お礼[未読]

【12865】名簿のチェックボックス
質問  初心者  - 15/7/4(土) 13:59 -

引用なし
パスワード
   初めて質問させていただきます。
今ACCESSで名簿を作っているのですが、
登録フォームを作成し、所持資格をチェックボックスで選択後
登録ボタンを押すと反映するようにしたいのですが
チェックボックスの内容がうまく取り込めません
どなたか教えていただけないでしょうか?

【12866】Re:名簿のチェックボックス
回答  かるびの  - 15/7/4(土) 14:19 -

引用なし
パスワード
    そちらの状況が全く見えません。
 
 「登録」フォームは、連結フォームですか、非連結フォームですか。

 連結フォームだとすれば、フォームのレコードソースは何ですか。

 フォームのレコードソースがクエリだとすれば、どのようなクエリですか(クエリをSQL文で提示してもらうとわかりやすいです。)。


 「登録」フォームが連結であるにせよ、非連結であるにせよ、
フォームのデータを格納するテーブルのテーブル構成はどうなっていますか。
 つまり、テーブル名、主キーのフィールド名及びデータ型並びに主要なフィールド名とデータ型は何ですか。


 「登録」フォームには、チェックボックスはいくつありますか。
 
 「登録」フォームのチェックボックスは、オプショングループ・コントロール内にありますか、
それとも、オプショングループ・コントロールは配置していませんか。

 「登録」フォームが連結フォームの場合、
それぞれのチェックボックスのコントロールソースは何ですか。

【12867】Re:名簿のチェックボックス
質問  初心者  - 15/7/4(土) 16:52 -

引用なし
パスワード
   登録フォームは名簿をレコードソースにしていて
各登録項目は非連結にしております。

項目入力後に登録のコマンドボタンを押すと下記コードで保存するようにしています。
-------------------------------------------
Dim oRS As DAO.Recordset

  If InputCheck() = False Then
    Exit Sub
  End If

Set oRS = CurrentDb.OpenRecordset("名簿", dbOpenDynaset)

  With oRS

    .AddNew

    .Fields("氏名").Value = 氏名.Value
    .Fields("ふりがな").Value = Me.ふりがな.Value
    
    .Update

  End With

  oRS.Close
  Set oRS = Nothing

  MsgBox Me.氏名 & " を登録しました", vbOKOnly + vbInformation, "登録"

  DoCmd.Close acForm, "登録"

-------------------------------------------

名簿の主キーは連番をオートナンバーで登録してあり、
テキスト型・日付/時刻型・数値型は問題なくボタンを押すと反映されます。

同じようにyes/no型を下記のようにするとエラーがでて保存ができませんでした。

--------------------------------------
  .Fields("資格").Value = Me.資格.Value
--------------------------------------

チェックボックスは全部で12個ほどあります。


▼かるびの さん:
> そちらの状況が全く見えません。
> 
> 「登録」フォームは、連結フォームですか、非連結フォームですか。
>
> 連結フォームだとすれば、フォームのレコードソースは何ですか。
>
> フォームのレコードソースがクエリだとすれば、どのようなクエリですか(クエリをSQL文で提示してもらうとわかりやすいです。)。
>
>
> 「登録」フォームが連結であるにせよ、非連結であるにせよ、
>フォームのデータを格納するテーブルのテーブル構成はどうなっていますか。
> つまり、テーブル名、主キーのフィールド名及びデータ型並びに主要なフィールド名とデータ型は何ですか。
>
>
> 「登録」フォームには、チェックボックスはいくつありますか。
> 
> 「登録」フォームのチェックボックスは、オプショングループ・コントロール内にありますか、
>それとも、オプショングループ・コントロールは配置していませんか。
>
> 「登録」フォームが連結フォームの場合、
>それぞれのチェックボックスのコントロールソースは何ですか。

【12868】Re:名簿のチェックボックス
回答  かるびの  - 15/7/5(日) 0:16 -

引用なし
パスワード
   >同じようにyes/no型を下記のようにするとエラーがでて保存ができませんでした。
>
>--------------------------------------
>  .Fields("資格").Value = Me.資格.Value
>--------------------------------------
 VBAの構文としては、特に問題はないですね。
 このコードをどこに書いているかという問題はありますが。


 あと、問題があるとすれば、テーブルですね。
 テーブルの「資格」フィールドのデータ型は何ですか。
 また、エラーのエラーメッセージはどのようなものですか。


 本題からは外れますが、Valueプロパティを省略せずに書いていることは
良いことだと思います。
 ネット上でのサンプルでは、既定のプロパティを省略してコードを書くものが
大半ですが、
VBAの習得のためには、コードの省略をしない方がいいです。
 また、その方が、
オブジェクトからの情報の出し入れは必ずプロパティを通して行うという感覚が
身に付くと思います。

【12869】Re:名簿のチェックボックス
質問  初心者  - 15/7/5(日) 8:43 -

引用なし
パスワード
   データの挿入箇所についてですが、
--------------------------------------
.Fields("氏名").Value = Me.氏名.Value
.Fields("資格").Value = Me.資格.Value
--------------------------------------

上記のように、氏名等のすぐ下に記述しており、氏名はテキスト型
資格はYes/No型です。

エラーについてですが、

------------------------------------------
コンパイルエラー
メソッドまたはデータメンバーが見つかりません。

⇒【Private Sub btn保存_click()】           黄色

.Fields("資格").Value = Me.資格【.Value】       青反転   

-----------------------------------------
このような感じになっています。


▼かるびの さん:
>>同じようにyes/no型を下記のようにするとエラーがでて保存ができませんでした。
>>
>>--------------------------------------
>>  .Fields("資格").Value = Me.資格.Value
>>--------------------------------------
> VBAの構文としては、特に問題はないですね。
> このコードをどこに書いているかという問題はありますが。
>
>
> あと、問題があるとすれば、テーブルですね。
> テーブルの「資格」フィールドのデータ型は何ですか。
> また、エラーのエラーメッセージはどのようなものですか。
>
>
> 本題からは外れますが、Valueプロパティを省略せずに書いていることは
>良いことだと思います。
> ネット上でのサンプルでは、既定のプロパティを省略してコードを書くものが
>大半ですが、
>VBAの習得のためには、コードの省略をしない方がいいです。
> また、その方が、
>オブジェクトからの情報の出し入れは必ずプロパティを通して行うという感覚が
>身に付くと思います。

【12870】Re:名簿のチェックボックス
回答  かるびの  - 15/7/5(日) 12:22 -

引用なし
パスワード
   >コンパイルエラー
>メソッドまたはデータメンバーが見つかりません。
>
>⇒【Private Sub btn保存_click()】           黄色
>
>.Fields("資格").Value = Me.資格【.Value】       青反転 

 このエラーメッセージは、
「Me.資格」の「資格」にはValueプロパティがないよ
と言っているわけです。

 とすると、考えられる可能性は、
当該チェックボックスの名前が「資格」ではない、
そもそもチェックボックスにはValueプロパティがない、
といったあたりです。


 後者についてですが、以前VB2005をちょっとかじったとき、
VB2005のチェックボックスにValueプロパティがなかったことにびっくりした記憶があります。
 VBAはVB6の文法を踏襲しており、VB6が発展してVB2005になったはずですから、
VB2005のチェックボックスにもValueプロパティあるはずだと思ったんですが。
 VB側で仕様の変更があったのでしょう。
 当方のアクセスは2003なんですが、その後のヴァージョンアップの過程の中で
同じようなことがVBAでも起こっているという可能性が0ではないです。
 でも、アクセスのチェックボックスにValueプロパティがなくなったなんてことは
聞いたことがないですし、
アクセス2003以前のヴァージョンで作ったデータベースがアクセス2013では使えない
などいうことになってしまうので、
仕様が変更されて、アクセスのチェックボックスからValueプロパティがなくなったなんてことは
ほとんど考えられないんですけどね。

 ヘルプを見て、チェックボックスにValueプロパティがあるかどうか確認してみてください。

【12871】Re:名簿のチェックボックス
お礼  初心者  - 15/7/5(日) 13:12 -

引用なし
パスワード
   初歩的なミスでした。

ラベルとチェックボックスの名称が逆になっており名称不明となっていたようです。

かるびのさんご丁寧にありがとうございました。

また何かありましたらよろしくお願いします。


▼かるびの さん:
>>コンパイルエラー
>>メソッドまたはデータメンバーが見つかりません。
>>
>>⇒【Private Sub btn保存_click()】           黄色
>>
>>.Fields("資格").Value = Me.資格【.Value】       青反転 
>
> このエラーメッセージは、
>「Me.資格」の「資格」にはValueプロパティがないよ
>と言っているわけです。
>
> とすると、考えられる可能性は、
>当該チェックボックスの名前が「資格」ではない、
>そもそもチェックボックスにはValueプロパティがない、
>といったあたりです。
>
>
> 後者についてですが、以前VB2005をちょっとかじったとき、
>VB2005のチェックボックスにValueプロパティがなかったことにびっくりした記憶があります。
> VBAはVB6の文法を踏襲しており、VB6が発展してVB2005になったはずですから、
>VB2005のチェックボックスにもValueプロパティあるはずだと思ったんですが。
> VB側で仕様の変更があったのでしょう。
> 当方のアクセスは2003なんですが、その後のヴァージョンアップの過程の中で
>同じようなことがVBAでも起こっているという可能性が0ではないです。
> でも、アクセスのチェックボックスにValueプロパティがなくなったなんてことは
>聞いたことがないですし、
>アクセス2003以前のヴァージョンで作ったデータベースがアクセス2013では使えない
>などいうことになってしまうので、
>仕様が変更されて、アクセスのチェックボックスからValueプロパティがなくなったなんてことは
>ほとんど考えられないんですけどね。
>
> ヘルプを見て、チェックボックスにValueプロパティがあるかどうか確認してみてください。

142 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free