• ベストアンサー

Accessの値リストについて

既存(第三者が作成)のAccessファイルをみると、リストボックスの値リストに文字列を利用する際に、「"」(ダブルコーテーション)で囲まれた場合と、囲まれていない場合があります。 私の環境(Windows7+access2007、XP+2003)でウィザードを使ってリストボックスを作成した際は、「”」で囲まれた形で作成されます。 「”」で囲まれないで作成されるのは、どのような場合でしょうか? ちなみに、どちらもAccessとしては問題ありません。 値リストの例)   aaa;bbb;ccc   "aaa";"bbb";"ccc"

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

こちらの環境はXP+2003になります。 > 「”」で囲まれないで作成されるのは、どのような場合でしょうか? まず念のためにですが(汗)、ウィザードを使用せずに手入力した場合は、 特に自動的に囲まれることはありません。 (「aaa;bbb;ccc」「"aaa";"bbb","ccc"」「aaa;"bbb",ccc」と入力すれば  入力した通りに記録されます) 一方、ウィザードを使用した場合は、個々の項目が「数値」とみなせる 場合は囲まれず、それ以外では「"」で囲まれるようです。 (ウィザード上で「1」「"2"」「3」「4e5」を指定すると、『値集合ソース』  プロパティでは「1;""2"";3;4e5」と記録される) ※「4e5」は、指数(4×10^5)とみなされているものと思います。 おそらく、本来はリストボックスに表示する選択肢のどれかが「;」を含む 場合のみ「"」で囲めば済む話だと思うのですが、それだとAccess内部 で各項目の文字を1つずつすべてチェックする必要が発生するため、 それを簡略化させるために、「数値のみ括らず、それ以外は括る」という ロジックを選択した・・・ということではないかと思います。 (現在のPCなら、前者の手段を採っても一瞬で終わる処理ですが(汗))

YossyTp
質問者

お礼

丁寧な回答ありがとうございます。 作成段階でウィザードを使用したかどうかの違いみたいですね。 マニュアル・参考書等には記述されていない(探せないだけかもしれませんが・・・)ことなので、勉強になりました。 ありがとうございました。

関連するQ&A

  • アクセス初心者です。

    アクセスのフォームを作成しています。入力パターンが限られているので、コンボボックスで作成しました。コンボボックスのプロパティーでデータ⇒値集合タイプ”AAA”;”BBB”;”ccc”といれて、入力チェックをはい。リスト行数を3にして、作ったのですが、フォーム画面にしたときに、 AAA BBB CCC となっていないのです。”AAA”;”BBB”;”ccc”のまま選択リストにでてきます。なにがいけないのでしょうか??

  • Perlの正規表現について

    Perlの正規表現について質問です. ■質問 aaa bbb aaa bbb ccc "ddd" aaa bbb ccc "ddd eee" aaa bbb ccc ddd eee "fff ggg hhh iii" というような,文字列が書かれているファイルがあるとします. ※ダブルクォーテーションが無い行もあります. ※ダブルクォーテーション内のスペースの数は,行によってそれぞれ異なります. これを,ダブルクォーテーションの中にあるスペースだけ アンダーバーに置換する場合の正規表現を教えて下さい. つまり,下記の出力にしたいです. aaa bbb aaa bbb ccc "ddd" aaa bbb ccc "ddd_eee" aaa bbb ccc ddd eee "fff_ggg_hhh_iii" ■条件 ※ちょっと古いPerlでも動くよう,ゼロ幅肯定/否定後読((?<),(!<))は使わないでください. ※単に実現するだけなら, # cat inputfile | print -pe 'sub f(){}(shift;s/ /_/;return $_;); s/(\".*\")/&f($1)/e;' みたいな感じで置換できそうですが,「正規表現だけで簡単に書けるかどうか」が知りたいのです(正規表現だけで実現出来る場合,そのアルゴリズムを知りたいです).そのため,関数と/eオプションは使わないでください.

    • ベストアンサー
    • Perl
  • フォームのリストボックスに値を表示させたい

    VBA フォームのリストボックスに値を表示させたい A1→aaa A2→bbb リストボックスに上記の値を表示させたいなら、 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "Sheet1!A1:A2" End Sub で出来ますが、シート上のセルで表示する値を指定するのではなく、VBA上で、リストボックスに表示させる値を指定したいのです。 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "aaa,bbb" End Sub を実行すると、VBA実行時エラー380になってしまいます。 UserForm1.ListBox1.RowSource = "aaa;bbb" もダメでした。 ご回答よろしくお願いします。

  • ACCESSのリストボックスで・・・

    ACCESS初心者です。 左のリストボックスから、ボタンを押すと、選択した値が右のリストボックスに渡るようにするのにはどうやったらよいのでしょうか?漠然とイメージはあるのですが、まず何をすればよいのかわかりません。 ヒントでもよろしいので、ご回答の程宜しくお願いいたします。 WindowsXPで、ACCESS2003を使用しています。

  • RowSource プロパティ

    アクセス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 ではどちらがいいのでしょうか? どちらも問題なく実行できます。 文字列だからダブルコーテーションで囲って入れてあげた方が良いのでしょうか?

  • アクセス(ACCESS)のリストボックスについて

    アクセスでフォームにテキストボックスとリストボックスを配置して、 テキストボックスに入力した文字列により、リストボックスに表示される データを変えたいのですが(フィルタをかけるというのでしょうか??) そこで、vbaを用い、リストボックスのプロパティの値集合ソースに SELECT * FROM aaa where aaa.bbb like "*あ*"; 'あ と言う文字のあいまい検索のつもり ”あ”はテキストボックス    に入力されている。 と入るような事を考えたのですが、ここで、aaaの部分がテーブルを基にした 場合は、該当するデータすべてが表示されますが、クエリーを基にすると 先頭のデータしか表示しないのです。 たぶん、素人の考えなのでしょうが、どうしてそうなるのかが分かりません。 教えていただけないでしょうか? できたら、クエリーを基にしても、該当データが表示できる方法も 教えてください。お願いします。 VBAは(?)かなりの初心者です。上記の方法も本に書いてあった物を やっと流用しました。猿にも解るくらいでお願いします。 ちなみに、アクセスは2000を使用しています。

  • Access Nullの評価について

    お世話になります。 Access2010 フォームを作成しました。 「登録」ボタンが押されたら、フォーム上の値の変更有無をチェックし 変更がなければ何もせず、変更があった場合のみ該当レコードを更新 します。 そこで質問ですが、  If Me.AAA = Me.BK_AAA And Me.BBB = Me.BK_BBB And Me.CCC = Me.BK_CCC Then    '変更が無ければ何もしない  Else    該当レコードにAAA~CCCの値を上書き  End If としておりますが、例えばMe.CCCとMe.BK_CCCにそれぞれNullが 入っている場合、Elseになってしまいます。 ※M.BK_CCCは変更前の値が入っている 恐らく、  If Me.AAA & "@" = Me.BK_AAA & "@" ・・・ のように文字をくっつけて評価させればよいかと思うのですが、 そもそもNullの場合は、イコールで評価出来ないのでしょうか。 ご教示の程、宜しくお願い致します。

  • Accessのリストボックスウィザード実行中のエラーについて

    Access2000を使っています。 フォーム中にリストボックスを作成したいと思っています。 ところが、リストボックスを作成するときのウィザードを実行中、リストボックスに表示させるためのフィールド選択画面で、フィールドを選択した後「次へ」をクリックすると、 「1つ以上の必要なパラメータの値が設定されていません」 とのエラーメッセージが表示され先に進むことができません。 どうすればよいのでしょうか。

  • ハッシュにおける値の取り出し

    初めて質問します。 Perl初心者なので、初歩的な質問かもしれませんが、 どなたかご教授お願いします。 下記のようなデータをDBから読み込み、ハッシュに 格納しました。しかし、個々の値にアクセスできず、 困っています。 例えば、NO01の項目1にアクセスしたい場合は、どうしたらよいのでしょうか。 %DATA NO  KOUMOKU1 KOUMOKU2 01 aaa AAA 02 bbb BBB 03 ccc CCC 04 ddd DDD 05 eee EEE よろしくお願いします。

    • ベストアンサー
    • Perl
  • リストボックスの値の再表示

    こんにちは! リストボックスを選択した後に、submitボタンを押して同一 ページに飛んだ際に、選択したリストボックスの値を表示させたい (一番上の値に戻ってしまいます。) のですがどのようにすれば可能でしょうか? ちなみにリストボックスはAccessをADO接続しています。

専門家に質問してみよう