![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
URL(1)
http://riss.narc.affrc.go.jp/kssys/test/query.asp
今、↑このURL(1)のサンプルを参考にしながら
検索できるスクリプトを作っています。
このサンプルに
下記のURLの↓ "出版年"のところの、
←1990年から1995年に出版された資料に限定する。という方法
をつけるにはどうしたらいいのでしょうか?
URL(2)
http://kototoi.dl.itc.u-tokyo.ac.jp/opac/help/ex …
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
そのまま書いたら当然エラーになりますって(;´Д`)
実際にはこのSQL文をデータベース(mdb)へ投げてあげる必要があります。
http://riss.narc.affrc.go.jp/kssys/test/encode.a …
を例に挙げれば、65~70行目でSQL文を作って、72行目でデータベースへSQLを投げて結果をレコードセット変数「rs」で受け取っています。
これと同じことを行えば良いのです。
yearがデータベース内の出版年のフィールド名nen1とnen2が検索条件となるASPでの変数名なら、上記サンプルを参考に
SQL = "SELECT * FROM example WHERE year BETWEEN " & nen1 " AND " & nen2
Set rs = db.Execute(SQL)
で結果がrsに入ります。
他の検索条件も組み合わせるなら、それらの条件もSQL文に追加してあげる必要
があります。
なお、nen1とnen2は「ただの変数」なのでフォームから値を受け取るには事前にRequest.QueryStringまたはRequest.Formで値を受け取っておく必要があります。
あと、上記の例もSQL文のサニタイジングを行っていませんのであくまで例としてご利用下さい。
No.1
- 回答日時:
SQL文のヒントのみ書いておきます。
SELECT * FROM example WHERE 出版年 BETWEEN 1990 AND 1995
SELECT * FROM example WHERE 出版年 >= 1990 AND 出版年 <= 1995
あと少し気になったのはURL(1)に限らず、該当サイト内のASPサンプル全般にSQL InjectionやXSS(クロスサイトスクリプティング)脆弱性を始め、セキュリティ的に問題となるコードが多く含まれています。
最低でもSQL文で使用する入力データとHTMLへ出力する文字は無害化(サニタイジング)を行う必要があります。
これらはReplace関数とServer.HTMLEncodeで簡単に解決出来る問題なので
参考URLを熟読の上、安全なコードを書けるよう頑張って下さい。
参考URL:http://www.atmarkit.co.jp/fsecurity/special/30xs …
この回答への補足
SELECT * FROM example WHERE 出版年 BETWEEN 1990 AND 1995
SELECT * FROM example WHERE 出版年 >= 1990 AND 出版年 <= 1995
のところ、有り難うございます。
私もBetweenまではたどりつきましたが、そこからがわからず
悩んでいました。本当に有り難うこざいます。
しかしながら、変数?がきちんと入り込めていないためか、
うまく検索にかかってくれません。
テーブル名 ・・example
出版年 ・・・mdbに登録されている名前year
上記サンプルとしてあがっている1990・・・テキストの名前 "nen1"
上記サンプルとしてあがっている1995・・・テキストの名前 "nen2"
でSQLを作成した場合、
SELECT * FROM example WHERE year BETWEEN nen1 AND nen2
SELECT * FROM example WHERE year >= nen1 AND year <= nen2
で、よろしいのですよね?
これでやると、
Microsoft VBScript コンパイル エラー (0x800A03FD)
'Case' がありません。
/db/nen.asp, line 252, column 7
SELECT * FROM example WHERE year BETWEEN nen1 AND nen2
となってしまいます。
これがずっと続いてるのですが、どこがおかしいのかおわかりになりますでしょうか・・・。
脆弱性があるんですね(^^;)
教えていただいたURLを読んで勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Excel(エクセル) 年間仕事用シフトカレンダーに、日勤 夜勤 休み に色分けをした。 4 2022/12/09 04:12
- その他(コンピューター・テクノロジー) どうすればExpressZip圧縮ソフトで再びpdfを圧縮、閲覧できますか? 4 2022/06/11 14:47
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- 物理学 解らない数式 2 2022/09/20 14:40
- その他(SNS・コミュニケーションサービス) 【至急】Microsoft teamsログインできないループ・・ 3 2023/05/17 13:17
- Excel(エクセル) エクセルで粘度計算表を作りたい 3 2023/02/28 10:02
- Visual Basic(VBA) VBA Twitter 高度な検索 日付 単語 リンクをOutlook で送信 2 2022/06/18 18:36
- その他(OS) Windows Server評価版がダウンロードできない 1 2022/05/06 13:32
- ホームページ作成・プログラミング パスワードつきホームページ トップページ以下はどうなる 6 2022/08/16 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
キヤノン アソビカメラ iNSPiC ...
-
phpのファイルがブラウザで開か...
-
discordについての質問です。久...
-
バッチファイルで電卓作ったの...
-
Excelでボタン(フォームコント...
-
Accessのトグルボタンでサブフ...
-
”KINGSOFT WPSのVBエディタ画面...
-
Windowsで複数のファイルを同じ...
-
Wi-Fiのパスワードが指定なしと...
-
エクセルに張り付けた写真のフ...
-
SPO2測定
-
高校1年生情報の問題について。
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
-
LEDで電光掲示板に「A B C D E...
-
One Driveへのアクセス
-
LINE APIからasp.net の web サ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
C#で動的にコントロールを取得...
-
数字の位ごとの値を表示するプ...
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
DWORDって
-
世界のナベアツ
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
-
ラジオボタンの値の取得につい...
-
Access2003 オートナンバーの現...
-
相関係数p値の出し方
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
10進数をアスキーコードに変換
-
1つ前の値を変数に保存する方法
-
vbaで極大値を抽出する方法
おすすめ情報