-PR-
解決済み

リストボックスで複数データを選択、入力(Access97)

  • 困ってます
  • 質問No.13046
  • 閲覧数311
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 41% (7/17)

Access97で初めて入力フォーム作成にチャレンジしています。
リストボックスやコンボボックスで複数データを選択し、1つのフィールドに入力したいのですが、可能でしょうか?
よろしくご教示ください。

例:”趣味”というフィールドに
  リストからの選択で
  ”読書,映画,テニス”のように入力したい。
  (カンマ区切り、スペース区切り、区切りなし
  など何でも結構です。)
  *ベストはカンマ区切り。

 
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル10

ベストアンサー率 48% (79/162)

>OKボタンか何か作成して、そこでまとめて設定をするのが
>正しいのでしょうか
このHPの左にあるラジオボタンもそうですが、そこをクリックしただけでは、次に進みませんよね?
最終に、[回答する]をクリックした時に、次に進む。
これと同じようなイメージで説明してました。

>項目がある程度あるならば、配列的に名前をつけて
この部分をモジュールに書いてみました。
フォーム上には10個のチェックボックスがあるとします。
 □ 趣味1
 □ 趣味2
   ・
   ・
 □ 趣味10

□のチェックボックスの名前はチェック0から9と入力してあります。
「趣味1から10」はラベルで、標題に入力した値が表示されています。名前は、ラベル0から9と入力しています。

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

実際には、最後のMsgboxがレコード等に格納する命令に置き換わる事になると思います。

只、入力はこれでいいと思いますが、実際に格納されたデータを表示するのはちょっと・・・って思う所はあるのですが、要望がカンマ区切りで1つのフィールドに格納したいってことでしたので。
お礼コメント
ikurakun

お礼率 41% (7/17)

Niiさん、本当にありがとうございました。丁寧な回答をいただいたので、初心者の私にもなんとかできました。
理解するまで、ずいぶん時間がかかってしまい、
お礼が遅くなりました。

サンプルまで作って頂いてカンゲキ☆☆でした。
ありがとうございました。m(_ _)m
投稿日時 - 0000-00-00 00:00:00
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 48% (79/162)

通常、リストボックス・コンボボックスは、その中からの1つを選択してもらう時に使用しません?
いくつかの選択肢の中から、複数個こ選んでもらう場合でしたら、チェックボックス等を考えられたほうが、良いような気がします。
どうしてもということでしたら、リストボックスとは別に、テキストボックスを作成し、リストから選択された内容を、テキストボックスにカンマ区切りで代入してゆく。
こんな方法しか思いつきませんが、この場合、最終的には入力内容のチェックが必要になってくるので、個人的にはやりたくないですね。
補足コメント
ikurakun

お礼率 41% (7/17)

Niiさん、ありがとうございます。
テキストボックスに入れる方法は、避けたいです。

チェックボックスは、yes/no型のデータをセットするもの
と考えていましたが、、、オプショングループのチェックボックスを使用してみましたが、1つしか選択ができませんでした・・
投稿日時 - 2000-11-15 20:59:59

  • 回答No.2
レベル10

ベストアンサー率 48% (79/162)

すみません、説明不足でした。
まず、予想される回答数のチェックボックスとその他用にテキストボックスをを用意します。
でもって、書き込み等のイベントでそれらの値をチェックし、Yesの時は、趣味のフィールドにその値を連結してゆけばいいのではないのかと思っていました。

Dim 趣味 As String

If Me.読書 Then
趣味 = 趣味 & "読書"
End If

てな具合に
項目がある程度あるならば、配列的に名前をつけて、ラベルの表題を格納する等工夫の余地はありますが。

あと、サブフォームを使えば、リストボックスに近いものが作成出来ると思いますが。(Yes/No型・テキスト型で該当する項目にチェックをいれてもらう)
補足コメント
ikurakun

お礼率 41% (7/17)

Niiさん、ありがとうございます。
イベントって?プロージャって??というレベルでしたので、ゆっくり考えてました。
で、次のようにチェックボックスに設定してみましたが、
これだとクリックする毎にデータが増えてしまう・・
OKボタンか何か作成して、そこでまとめて設定をするのが
正しいのでしょうか?

Private Sub チェックB_Click()
If Me!チェックB = -1 Then
趣味 = 趣味 & "読書"
End If
End Sub

ちなみに、
>項目がある程度あるならば、配列的に名前をつけて、ラ>ベルの表題を格納する等工夫の余地はありますが
この部分は、理解できてません。
スミマセン。
投稿日時 - 2000-11-16 19:49:26
  • 回答No.3
レベル10

ベストアンサー率 48% (79/162)

リストボックスからの複数選択については、何らかの書籍に載っていたような気がずっとしていたので、調べてみたら、Access97のサンプルデータベースの設計支援データベース(私の環境ではC:\Program Files\Microsoft Office\Office\Samples\Solutions.mdbにありました。標準セットアップでセットされなかったはずなので、該当ファイルが無い場合は追加セットアップを行って下さい。)の中の[コンボ ボックス、リスト ボックス、サブフォーム、サブレポートを最大限に活用する。] → [オプション グループで選択された値を基に一覧の内容を限定する。]というのがありました。
只、初めて入力フォームを作成されるようなので、かなり敷居が高くなってしまうような気がします。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ