• ベストアンサー

アクセスで複数選択後、テキストボックスに入力

いつもお世話になります。求人リストを作成しています。 募集職種をいちいち入力していく手間をはぶくため、下記のようなことをしてみたいと思っています。 ○リストボックスとは別に、テキストボックスを作成し、リストから選択された内容を、テキストボックスにカンマ区切りで代入していく。 ○あるいは、チェックボックスにチェックしたものをテキストボックスにカンマ区切りで代入していく。 検索していてQNo.13046の方が同じようなことをしていたのですが、 置き換えてやってみても「nullの使い方が正しくありません」とエラーが出てしまいます。 アドバイスよろしくお願いいたします。

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

  • ベストアンサー
noname#22650
noname#22650
回答No.6

>メインフォームのサブフォームの中のテキストボックスに代入したい 了解です。 メインフォームの「サブフォーム/サブレポート」の名前が「埋め込み0」とします。   'メインフォームのテキスト0に代入   Forms("メインフォーム").テキスト0 = 趣味 ↑ここを↓こう変更してください。   'メインフォームのサブフォームのテキスト0に代入   Forms("メインフォーム").埋め込み0.Form.テキスト0 = 趣味

chormuno
質問者

お礼

サブフォームのテキスト0に代入 までは自分で考えることができたのですが・・・ 無礼なほどの追加の質問にも丁寧にご指導頂きありがとうございました。 おかげで納得のいくものができました。 感激です!!!! 回答ポイント20ptでは足りないくらいです。 本当にありがとうございました!!

その他の回答 (5)

noname#22650
noname#22650
回答No.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 上記のように変更。これで出来ると思います。

chormuno
質問者

補足

す、すみません。。。 メインフォームのサブフォームの中のテキストボックスに代入したい旨書き忘れていました。 重ね重ね申し訳ありません。。。

noname#22650
noname#22650
回答No.4

>テキストボックスに表示→テーブルに保存していく >ということはできますでしょうか? もちろん出来ます。 求人リストを入力するフォームを作っていると言う事ですよね。 テーブルもフォームも動く状態まで出来上がっていますか? フォームが出来上がっているとします。 保存するテキストボックス名が「テキスト0」だとすると、 >MsgBox ("あなたの趣味は " & 趣味 & " です") この行を下の行に変更 Me.テキスト0 = 趣味 MsgBoxに表示する部分をテキストボックスに代入に変えるだけです。 テキストボックスのコントロールソースが設定されていれば自動的にテーブルにも保存されます。

chormuno
質問者

補足

できました!!ありがとうございます。 ただ、メインフォームに作るとどうしても場所をとってしまうので チェックボックスをサブフォームで(または別フォームで)表示して メインフォームのテキストボックスに表示していくこともできるんでしょうか? 何度もすみません。。。

noname#22650
noname#22650
回答No.3

別回答 チェックボックスのプロパティ データタブ 規定値 にFalseを入れる。 これでもエラー回避できますね。 チェックボックスの規定値がNullのためエラーになってます。 #2 はNullをFalseとして処理する方法です。 #3 は規定値をFalseにする方法です。

chormuno
質問者

お礼

別回答までありがとうございます。 ただ、よく見るとそうなのですがMsgBoxにでますよね? テキストボックスに表示→テーブルに保存していく ということはできますでしょうか? 初心者なもので、よくわかっていなくて。 よろしくお願いいたします。

noname#22650
noname#22650
回答No.2

確かにエラーが出ますね。 If Me("チェック" & Cnt) Then この行を If Nz(Me("チェック" & Cnt), False) Then こう変更してみてください。Nullの場合、Falseとして処理します。

noname#22650
noname#22650
回答No.1

具体的なソースを教えてください。 どの行でエラーが出てますか?教えてください。

chormuno
質問者

補足

ありがとうございます。 下記は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 よろしくお願いいたします。