- ベストアンサー
アクセスで複数選択後、テキストボックスに入力
いつもお世話になります。求人リストを作成しています。 募集職種をいちいち入力していく手間をはぶくため、下記のようなことをしてみたいと思っています。 ○リストボックスとは別に、テキストボックスを作成し、リストから選択された内容を、テキストボックスにカンマ区切りで代入していく。 ○あるいは、チェックボックスにチェックしたものをテキストボックスにカンマ区切りで代入していく。 検索していてQNo.13046の方が同じようなことをしていたのですが、 置き換えてやってみても「nullの使い方が正しくありません」とエラーが出てしまいます。 アドバイスよろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>メインフォームのサブフォームの中のテキストボックスに代入したい 了解です。 メインフォームの「サブフォーム/サブレポート」の名前が「埋め込み0」とします。 'メインフォームのテキスト0に代入 Forms("メインフォーム").テキスト0 = 趣味 ↑ここを↓こう変更してください。 'メインフォームのサブフォームのテキスト0に代入 Forms("メインフォーム").埋め込み0.Form.テキスト0 = 趣味
その他の回答 (5)
>チェックボックスをサブフォームで(または別フォームで)表示して >メインフォームのテキストボックスに表示していくこともできるんでしょうか? メインフォームに別フォームを開くためのボタンを追加してクリックイベントを記述 Private Sub コマンド1_Click() 'ダイアログとして別フォームを開きます DoCmd.OpenForm "別フォーム", , , , , acDialog End Sub 別フォームのプログラムを少し変更 > Me.テキスト0 = 趣味 >End Sub この部分を 'メインフォームが開いているかチェック If SysCmd(acSysCmdGetObjectState, acForm, "メインフォーム") <> 0 Then 'メインフォームのテキスト0に代入 Forms("メインフォーム").テキスト0 = 趣味 End If '別フォームを閉じる DoCmd.Close acForm, Me.Name End Sub 上記のように変更。これで出来ると思います。
補足
す、すみません。。。 メインフォームのサブフォームの中のテキストボックスに代入したい旨書き忘れていました。 重ね重ね申し訳ありません。。。
>テキストボックスに表示→テーブルに保存していく >ということはできますでしょうか? もちろん出来ます。 求人リストを入力するフォームを作っていると言う事ですよね。 テーブルもフォームも動く状態まで出来上がっていますか? フォームが出来上がっているとします。 保存するテキストボックス名が「テキスト0」だとすると、 >MsgBox ("あなたの趣味は " & 趣味 & " です") この行を下の行に変更 Me.テキスト0 = 趣味 MsgBoxに表示する部分をテキストボックスに代入に変えるだけです。 テキストボックスのコントロールソースが設定されていれば自動的にテーブルにも保存されます。
補足
できました!!ありがとうございます。 ただ、メインフォームに作るとどうしても場所をとってしまうので チェックボックスをサブフォームで(または別フォームで)表示して メインフォームのテキストボックスに表示していくこともできるんでしょうか? 何度もすみません。。。
別回答 チェックボックスのプロパティ データタブ 規定値 にFalseを入れる。 これでもエラー回避できますね。 チェックボックスの規定値がNullのためエラーになってます。 #2 はNullをFalseとして処理する方法です。 #3 は規定値をFalseにする方法です。
お礼
別回答までありがとうございます。 ただ、よく見るとそうなのですがMsgBoxにでますよね? テキストボックスに表示→テーブルに保存していく ということはできますでしょうか? 初心者なもので、よくわかっていなくて。 よろしくお願いいたします。
確かにエラーが出ますね。 If Me("チェック" & Cnt) Then この行を If Nz(Me("チェック" & Cnt), False) Then こう変更してみてください。Nullの場合、Falseとして処理します。
具体的なソースを教えてください。 どの行でエラーが出てますか?教えてください。
補足
ありがとうございます。 下記はQNo.13046の方のソースですが、矢印の行でエラーが出ます。 趣味→職種に置き換える等はしています。 Private Sub コマンドボタン_Click() Dim Cnt As Integer Dim FLG As Integer Dim 趣味 As String FLG = 0 趣味 = "ありません!" For Cnt = 0 To 9 →If Me("チェック" & Cnt) Then If FLG = 1 Then 趣味 = 趣味 & "," Else 趣味 = "" End If 趣味 = 趣味 & Me("ラベル" & Cnt).Caption FLG = 1 End If Next Cnt MsgBox ("あなたの趣味は " & 趣味 & " です") End Sub よろしくお願いいたします。
お礼
サブフォームのテキスト0に代入 までは自分で考えることができたのですが・・・ 無礼なほどの追加の質問にも丁寧にご指導頂きありがとうございました。 おかげで納得のいくものができました。 感激です!!!! 回答ポイント20ptでは足りないくらいです。 本当にありがとうございました!!