
現在Access2003とSQLServer2005ExpressEditonで勉強中の者です。
ストアドプロシージャを動的に作成したいと思い
以下のページを参考に、NorthwindCS.adpはダウンロードせず
自前で簡単に環境を作ってストアドプロシージャをつくりテストに成功しました。
http://support.microsoft.com/kb/286828/ja
そこで「もし検索対象のテーブルに摘要欄があり、"未"を含む検索をしたい場合はどうすればよいか」と思い、摘要フィールド(Varchar)を作成してストアドプロシージャに変数@TEKIYO(Varchar)を作り、以下の行を足しました。
----------------------------------------------------------------
--摘要の検索条件がNULLかどうかを確認します。
--ここに値が含まれている場合WHERE句を作成します。
IF @TEKIYO IS NOT NULL
BEGIN
IF @SQLSTRING IS NOT NULL
BEGIN
SELECT @SQLSTRING = @SQLSTRING + ' AND TEKIYO LIKE ''%''' + @TEKIYO + '%'''
END
ELSE
BEGIN
SELECT @SQLSTRING = 'WHERE TEKIYO LIKE ''%''' + @TEKIYO + '%'''
END
END
----------------------------------------------------------------
adpの検索フォーム摘要欄に「未」と入力し実行ボタンを押すと「実行時エラー102 '未'付近に不適切な構文があります」と出てしまいました。
シングルクォーテーションの打ち方が間違っているのだろうと色々調べたり、打ち方を変えてみたりしたのですが、解決できず悩んでおります。
正解はどうなのでしょうか?教えてください。
なにとぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
'(シングルクォーテーション)が含まれた文字列を考えるのって、最初はすごく戸惑いますよね。
以下のように考えていくと、わかりやすいのかな、と思います。
1.''で囲まれた部分は文字列として扱われる
2.'(シングルクォーテーション)を文字列として扱うのには、''(シングルクォーテーション二つ)
まず実際に作成したい文字列を記載し、上記を踏まえて分解していきます。
1.TEKIYO LIKE '%未%' ←作成したい文字列
2.TEKIYO LIKE ''%未%'' ←シングルクォーテーション部分を二つに
3.TEKIYO LIKE ''% 未 %'' ←変数部分となるところを分ける
4.'TEKIYO LIKE ''%' 未 '%''' ←変数以外の文字列となる部分をそれぞれシングルクォーテーションで囲む
5.'TEKIYO LIKE ''%' + @TEKIYO + '%''' ←3.で切り出した変数部分となるところに ++で変数を埋め込む
こんな感じでいかがでしょうか。
お礼が遅くなってすみません!ありがとうございます!!
今作成したところバッチリ成功しました!
ものすごくわかりやすく教えていただいて本当にありがとうございます!
Management Studio Expressで作業していたのですが、'を打つたびに後に続く構文が赤くなったりグレーになったりで、どこまで打てばおさまるのか、おっしゃる通り戸惑いまくっていました。
まだまだ勉強していかなければならないので(セキュリティ関連さっぱりなのです。。)躓く事が多々あると思いますが、また何卒よろしくお願いいたします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- その他(プログラミング・Web制作) パイソンでのプログラミングについて 3 2022/08/11 20:31
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのxans.について
-
エクセルで個人用マクロの配布方法
-
携帯のアドレス変更の時に・・・
-
エクセルでアドイン
-
ストアドから得られるレコード...
-
広告ブロッカーのアドカードと...
-
アドインの削除
-
excel 複数のアドインソフトの...
-
速度が低下し無効になったアド...
-
T-SQL: Order By の使い方
-
excel2013 MonthDays 関数が使...
-
Excel再起動でアドインのタブが...
-
Outlook 送受信エラー
-
outlook2016のアドイン
-
フィルターかけた後、重複を除...
-
外部参照してるキーを主キーに...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlook 送受信エラー
-
エクセルのxans.について
-
エクセルで個人用マクロの配布方法
-
Excel再起動でアドインのタブが...
-
広告ブロッカーのアドカードと...
-
ストアド内で動的にSQLを作る際...
-
excel 複数のアドインソフトの...
-
速度が低下し無効になったアド...
-
VB.NETでテキストボックスから...
-
パワーポイントのアドインのソ...
-
ストアドから得られるレコード...
-
ストアドプロシージャの条件分...
-
Excel:アドイン自作の方法は?
-
Excelで、アドインの削除方法
-
ストアドプロシージャのネスト
-
T-SQL: Order By の使い方
-
excel2013 MonthDays 関数が使...
-
Transact-SQL だけでカレンダー...
-
エクセルでアドイン
-
ストアドプロシージャの変数に...
おすすめ情報