アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスvbaでコンボボックスの値を設定する時に

Sub マクロ1()
With Form_フォーム
.コンボ.RowSourceType = "値リスト"
.コンボ.RowSource = """aaa"",""bbb"""
End With
End Sub

Sub マクロ2()
With Form_フォーム
.コンボ.RowSourceType = "値リスト"
.コンボ.RowSource = "aaa,bbb"
End With
End Sub

ではどちらがいいのでしょうか?
どちらも問題なく実行できます。

文字列だからダブルコーテーションで囲って入れてあげた方が良いのでしょうか?

A 回答 (3件)

ゴメン 添付画像が間違っていました。

「RowSource プロパティ」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/02/18 21:51

値集合タイプ(RowSourceType)プロパティを「値リスト」に設定した場合、


値集合ソース(RowSource)プロパティでは「,(カンマ)」/「;(セミコロン)」が
ともに区切り文字として認識されます。
(但し、カンマは、プロパティ設定後に、自動でセミコロンに変換されます)

ですので、
 a)選択肢の中に上記の区切り文字を含む値がある場合は「"/'」で括り、
  含まない場合は括らない
という場合分けが考えられます。
(更に、ある項目でのみ区切り文字を含む場合、含むもののみを「"/'」で
 括る、という考え方もあり得ます)


その一方で、選択肢の構成によって「"/'」による括りの有無を切り替える
ことにしてしまうと、後々メンテナンスで一括で更新・変換を掛けようとした
際に、余計な場合分けが必要になる可能性があります。

そういう意味では、
 b)文字列型の列の項目は一律「"/'」で括り、数値型の列の項目は
  括らない
 c)列毎のデータ型に拘わらず、全ての項目を「"/'」で括る
という対応もあり得ます。
(コンボボックスの『列数(ColumnCount)』プロパティが「2」以上の場合も
 含めた想定で説明をしていますので、ご注意のほど)


『「"/'」で括る必要がないことがわかっているのに敢えてそれを入力する
手間』と、『不統一性による弊害の可能性』をどう考えるか、ということに
なりますので、これらのメリット・デメリットを踏まえた上で、後は個人の
好み・判断ということになるかと思います。

因みに、私の場合は「b」がメイン・・・だったはず(汗)
(それ以前に、『値集合タイプ』=「テーブル/クエリ」が専らではありますが)
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/02/18 21:51

>ではどちらがいいのでしょうか?



このような事は両方とも実行すればすぐわかるはずです。
自主性を持って取り組んでください。

ただし
ACCESS2010では区切り記号はセミコロン(;)のようです
コンボ.RowSource ="aaa;bbb"

追伸 今まで他のデータベースソフトを使っていたのですか
  ACCESSこれからですか

  1.コンボボックスは通常コンボボックスのプロパティー設定でよいのではないでしょうか
  2.値リストを使うのは参照項目が変動しない性別等に限って
    テーブル参照にします。
    ※参照項目テーブルにすると、運用現場で参照項目変更が可能です
「RowSource プロパティ」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/02/18 21:51

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

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


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