現在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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
like演算子内に変数って使えないんですか?
その他(プログラミング・Web制作)
-
ストアドプロシジャからストアドプロシジャを呼ぶには?
Oracle
-
PL/SQLの変数について
Oracle
-
-
4
【Transact-sql】 where条件、inのパタメータを変数に持たせる方法
SQL Server
-
5
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
6
PL/SQLでテーブル名に変数を使いたい
その他(データベース)
-
7
【PL/SQL】FROM区に変数を使う方法
Oracle
-
8
SELECT 文 GROUP での1件目を取得
SQL Server
-
9
検索結果の列数を動的に変更したい
SQL Server
-
10
datetime型でNULL値を入れたい。
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Outlook 送受信エラー
-
エクセルで個人用マクロの配布方法
-
速度が低下し無効になったアド...
-
Word2007でアドインタブが表示...
-
Excel再起動でアドインのタブが...
-
excel 複数のアドインソフトの...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
SQLで特定の項目の重複のみを排...
-
for whichの使い方
-
エクセルで最後の文字だけ置き...
-
selectした大量データをinsert...
-
列番号による項目の取得について
-
SQL文で、合計が0のレコードを...
-
INSERT文でフィールドの1つだ...
-
カーソル0件の時にエラーを発生...
-
副問合せの書き方について
-
Access:クエリーにて集計後に...
-
UWSCでMOUSEORG関数が上手く処...
-
ある条件の最大値+1を初番する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
速度が低下し無効になったアド...
-
Outlook 送受信エラー
-
Excel再起動でアドインのタブが...
-
パワーポイントのアドインのソ...
-
エクセルのxans.について
-
エクセルで個人用マクロの配布方法
-
広告ブロッカーのアドカードと...
-
ストアド内で動的にSQLを作る際...
-
Excelから自作アドインを完全に...
-
VB.NETでテキストボックスから...
-
ストアドから得られるレコード...
-
ストアドから特定のキーワード...
-
複数アドインプログラムをひと...
-
excel 複数のアドインソフトの...
-
Word2007でアドインタブが表示...
-
Excel:アドイン自作の方法は?
-
アウトルックで、以前利用して...
-
ストアドプロシージャのネスト
-
ストアドプロシージャの変数に...
-
CSVを取込むストアドプロシージ...
おすすめ情報