• ベストアンサー

文字列を括る時は、”” or ’’ ?

エクセル2003のVBAでADOを使ってるのですが 「テキスト・文字列を括る場合はダブルコーテーション」と習ったのですが http://www.geocities.jp/cbc_vbnet/ADO/filter.html を見てると 「テキスト型のフィールド・変数はシングルコーテーションで囲みます」と記載されています。 なぜダブルコーテションじゃなくなってしまったのでしょうか? 頭が混乱しています。 ADOを使う時は特別なのですか? ご回答よろしくお願いします。

  • pcexy
  • お礼率97% (130/133)

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

SQLの規格書を読む元気はないですが、SQLでは文字列をシングルクォーテーションで囲むのが標準で、そこから来ているのではないでしょうか。 少し検索してみた限りでは、Access: シングル、ダブル共使える(ADOで使えるかどうかとは別の話です)。Oracle:ダブルは別の意味を持つ。MySQL:ダブルの場合は文字列中の変数表現を、値に置き換える。という様に、ダブルは別の意味を持つ場合があるそうです。 ところで、参照されたURLに 「テキスト型のフィールド・変数はシングルコーテーションで囲みます」 なんて書いてないとおもいます。 「抽出する値をシングルクォーテーション(’)で囲みます。」 「変数で指定する場合も,シングルクォーテーションが必要です。」 です。 後者はSQL文を変数を用いて動的に生成する場合、変数に値を代入する際に、 A="'文字列'"としろという意味です。 自分だけかもしれませんが、忘れて悩みがちなので、念のため。 ところで、参考URLですが、AcrobatReaderのバージョンが古いと白紙しか表示されませんので、ご留意下さい。 今入力しているPCはAcrobat7が入っていますが、見られませんでした。

参考URL:
http://www.jisc.go.jp/app/pager?%23jps.JPSH0090D:JPSO0020:/JPS/JPSO0090.jsp=&RKKNP_vJISJISNO=X3005-9
pcexy
質問者

お礼

SQLから来ているのですね。 >「テキスト型のフィールド・変数は シングルコーテーションで囲みます」 なんて書いてないとおもいます。 読み返してみましたが、私の勘違いでしたね。 ご指摘ありがとうございます。 ADOを使う時は、文字列でも変数でも シングルコーテーションで括るようにします。 PDFは閲覧できました。 しかし難しいですね・・・汗 ありがとうございました。大変参考になりました。

関連するQ&A

  • "文字列"? > CSVデータをMySQLにインポート時テキストデータのフォーマット

    CSVデータをMySQLにインポートする時に、データの中にテキストデータ(文字列)があるとします。 データを正しくインポートする為に、文字列をダブルクォーテーションやシングルクォーテーションで囲む必要はありますでしょうか。 記憶は定かではありませんが、「PostgreSQLの場合、文字列をクォーテーションで囲むとエラーになる。MySQLの場合は逆で、文字列をクォーテーションで囲まないとエラーになる。」みたいな話しを聞いたことがあるような気がします。 どなたか、教えていただければ幸いです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • ダブルコーテーションやシングルコーテーション

    私の持っている参考書の中に、次のように、 変数をダブルコーテーション、シングルコーテーション、およびピリオドで囲んでいるSQL文があるのですが、 この場合、なぜ、ダブルコーテーション、またはシングルコーテーションのみでは駄目なのでしょうか? [参考書の記載] where カラム名>="'.変数.'" ※変数は日付が入ります。varchar型です。

    • ベストアンサー
    • MySQL
  • c言語の文字、また文字列について

    c言語の文字、つまり「'(シングルクオーテーション)」で囲んだ単数の半角文字は、メモリに保存されているのでしょうか。 また、アドレスは有るのでしょうか。 c言語の文字列、つまり「"(ダブルクオーテーション)」で囲んだ複数の文字は、メモリに保存されているのでしょうか。 また、アドレスは有るのでしょうか。

  • VBAの文字列の中に”(全角のダブルコーテーション)を使う

    VBAのStringの中に”(全角のダブルコーテーション)を使おうとしているのですが、VisualBasicEditorにより自動的に ""(半角のダブルコーテーション2つ)に変換されてしまいます。 Dim str as String str = "abc”def"    ↓ str = "abc""def" 文字列中に全角のダブルコーテーションを使う方法を教えてください。よろしくお願いします。

  • 検索文字列を ' ' で囲むのと " "で囲むのの違い

    Googleで検索するときに、次の(1)、(2)のようにすると何が検索されますか。 (1)文字列をシングルクオーテーションマークに入れて検索する。例えば、 'This is a pen.' を窓に入力して検索する。 (2)文字列をダブルクオーテーションマークに入れて検索する。例えば、 "This is a pen." を窓に入力して検索する。

  • PHP コードを文字列として出力する方法

    お世話になります ダブルクォーテーションで囲っても 「PHP コード」を「文字列」として出力する方法 つまり、evalの逆の関数のようなものはありますでしょうか $a['huga'] = 2; $b['hoge'] = 3; //式 $c = $a['huga'] * $b['hoge'] ; abc($c = $a['huga'] * $b['hoge'] ); function abc($str){ //ここでなんちゃらほんちゃら //もしくはfunctionの外側でなんちゃらもでも可 echo $str; } 期待する出力結果 $c = $a['huga'] * $b['hoge'] ; 実際の結果 6 $の前に¥を入れてダブルクォーテーションで囲めば、 または、シングルクォーテーションの前に¥を入れてシングルクォーテーションで囲めば 文字列になるのはわかりますが 式の文字列には直接、手を加えず関数等で実現するやり方が知りたいです ※連想配列のキーの囲み文字はシングルクォーテーションです、ダブルに出来ない条件でお願いします。 お忙しい中恐縮ですが熟練者の方でわかる方がいましたら お教え下さいませ

    • ベストアンサー
    • PHP
  • エクセルで文字列をtxtファイルに変換すると""がつく

    テキストファイルを文字列の引用符は「なし」でエクセルの文字列で開き、加工して再びテキストファイルで保存すると、部分的に文字列に引用符("")がついてしまうのですが、この""(ダブルクォーテーション)をつけずにテキストで保存するにはどうしたらよいのでしょうか。

  • CSVファイルへの文字列データの書き出しについて

    OS:WindowsXP、Excel:2003 です。 Excelマクロ(VBA)で、あるデータをCSVファイルに出力しているのですが、 文字列型(String)を書き出すと、必ずダブルクォーテーションで囲まれます。 CSVへ書き出すときは、そういう仕様になっているということは分かったのですが、 処理の都合上、どうしてもダブルクォーテーションで囲まずに書き出ししたいと思っています。 そういう場合にはどのようにすれば良いのか教えて下さい。 ちなみに、書き出しは「Write」を使っています。

  • Excelに、ダブルクォーテーションで始まる文字列を貼り付けると、ダブルクォーテーションが消えること

    Excelで、ダブルクォーテーションで始まる文字列をセルに貼り付けたときに ダブルクォーテーションが消えるのですが、 Excelってもともと(標凖的な動作として)そういうものですか。 (F2キーを押すなりして)編集状態にして貼り付ければ、ダブルクォーテーションのついたまま貼り付くのですが、 私はセルを選択して貼り付けただけでも大丈夫だと思っていました。 「文字列を貼り付ける」というのは、例えばテキストエディタ上にあるものを手作業でコピーして貼り付ける、ということです。 「ダブルクォーテーションで始まる文字列」と言っても、 ダブルクォーテーションが3つ以上あったときに消えるのは、最初の1組(2つ)ですね。 しかし、 "AAAA"""BBBB のような場合には、なぜか AAAA"BBBB になるのです。 (ちなみに、この文字列を、質問直前の質問内容確認の画面(IE)でコピーしてExcelに貼り付けたときは、違います。) どのような規則に基づいてダブルクォーテーションが消えるのかも疑問です。 このような仕様になっている理由はなんでしょうか。 また、Excelに文字列を貼り付けるという操作を頻繁に行うため、 できれば、編集状態にしなくても、 セルを選択して貼り付けするだけで、そのままダブルクォーテーションも貼り付いてほしいのですが、 そのためにはどうすればよいのでしょうか。 「セルの書式設定」で、表示形式を文字列にすればよいと思ったのですが、だめでした。 セルには文字列を入れるだけで、数式を入れたりしません。 (数式としては扱ってほしくない、という意味です。) Excelは2000です。

  • エクセルにて文字列データ先頭の「'」シングルクォーテーションを非表示にする

    よろしくお願いします。 EXCEL形式にアウトプットしデータを作成しました。 そのなかに文字列と認識させたい数字フィールドがあり先頭に「'」シングルクォーテーションを付けています。 すると対象のセル上に、シングルクォーテーションが表示されておりました。 セルをアクティブにし、編集状態でEnterを押下することにより、表示になりました。 なにもせずに「シングルクォーテーション」がセルには非表示、数式バーには表示される状態にするには、どうしたらよいでしょうか。 よろしくお願いします。

専門家に質問してみよう