- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2008-01-17 21:49
引用: |
|
BBSRさんの書き込み (2008-01-17 20:05) より:
WEBも自身がありません初心者ですみません
|
初心者であることは何ら問題はない。
でも、自分で考えようとしないことは、大いに問題だと思う。
引用: |
|
複数テキストボックス配置でGridviewをあいまいに絞込み検索させています
下記
WHERE ((列1 LIKE '%' + @param1 + '%') OR (列1 IS NULL AND @param1 = '')) AND ((列2 LIKE '%' + @param2 + '%') OR (列2 IS NULL AND @param2 = ''))
上記の内容で検索させていますが日付になると不可のようです
|
ここまでできていて、
引用: |
|
WHERE (((管理簿.日付) Between [Forms]![フォーム1]![テキスト0] And [Forms]![フォーム1]![テキスト2]));
これをどのように組み合わせるのかわかりません
|
なぜこうなるのか、理解できなかった。
上のコードが、どこかからコピーしてきて、自分では何にも考えてないと仮定すると、理解できる。
せっかく持っているんだから、頭使おうぜ、な!
|
- BBSR
- 大ベテラン
- 会議室デビュー日: 2006/08/30
- 投稿数: 121
- お住まい・勤務地: 大阪
|
投稿日時: 2008-01-17 22:35
引用: |
|
Jittaさんの書き込み (2008-01-17 21:49) より:
引用: |
|
BBSRさんの書き込み (2008-01-17 20:05) より:
WEBも自身がありません初心者ですみません
|
初心者であることは何ら問題はない。
でも、自分で考えようとしないことは、大いに問題だと思う。
引用: |
|
複数テキストボックス配置でGridviewをあいまいに絞込み検索させています
下記
WHERE ((列1 LIKE '%' + @param1 + '%') OR (列1 IS NULL AND @param1 = '')) AND ((列2 LIKE '%' + @param2 + '%') OR (列2 IS NULL AND @param2 = ''))
上記の内容で検索させていますが日付になると不可のようです
|
ここまでできていて、
引用: |
|
WHERE (((管理簿.日付) Between [Forms]![フォーム1]![テキスト0] And [Forms]![フォーム1]![テキスト2]));
これをどのように組み合わせるのかわかりません
|
なぜこうなるのか、理解できなかった。
上のコードが、どこかからコピーしてきて、自分では何にも考えてないと仮定すると、理解できる。
せっかく持っているんだから、頭使おうぜ、な!
|
お返事ありがとうございます
確かに
WHERE ((列1 LIKE '%' + @param1 + '%') OR (列1 IS NULL AND @param1 = '')) AND ((列2 LIKE '%' + @param2 + '%') OR (列2 IS NULL AND @param2 = ''))
これは教えていただいたものですが
WHERE (((管理簿.日付) Between [Forms]![フォーム1]![テキスト0] And [Forms]![フォーム1]![テキスト2]));
これはaccessさんのヒントを元に時間かけてaccessで作りましたややこしい。
申し訳ありませんがこちらも真剣に悩んでます。
参考にさせて頂きます。
|
- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2008-01-19 21:42
引用: |
|
BBSRさんの書き込み (2008-01-17 22:35) より:
お返事ありがとうございます
確かに
WHERE ((列1 LIKE '%' + @param1 + '%') OR (列1 IS NULL AND @param1 = '')) AND ((列2 LIKE '%' + @param2 + '%') OR (列2 IS NULL AND @param2 = ''))
これは教えていただいたものですが
WHERE (((管理簿.日付) Between [Forms]![フォーム1]![テキスト0] And [Forms]![フォーム1]![テキスト2]));
これはaccessさんのヒントを元に時間かけてaccessで作りましたややこしい。
申し訳ありませんがこちらも真剣に悩んでます。
参考にさせて頂きます。
|
ええ、「WHERE (((管理簿.日付) Between [Forms]![フォーム1]![テキスト0] ...」の方は、ご自身で考えられたのだとわかりました。で、このうち、SQL として不変の部分と、外部からデータとして供給されるパラメータの部分はどこですか?最初のコードが理解できていれば、「@param1」と「[Forms]![フォーム1]![テキスト0]」が対応するとわかったのではないでしょうか。そこを置き換えると、2008-01-15 16:01 ぴんふさんのコードと、ほぼ同等になります。
ああ、先の「なぜこうなるのか、理解できなかった。」は、「これをどのように組み合わせるのかわかりません」に対してです。「@param1」が何か、を理解していないから、置き換えできなかったのだな、と。そこで置き換えができていれば(していれば)、Accessさんの返答より後は不要な会話だと思います。
んで、もう一つ。
WHERE (((管理簿.日付) Between 「日付として最小の値」 And [Forms]![フォーム1]![テキスト2]));
または、
WHERE (((管理簿.日付) Between [Forms]![フォーム1]![テキスト0] And 「日付として最大の値」));
とすると、挿入する値を変えるだけで、組み立てる SQL はひとつになりますよね?
DBMS に対して、不変の SQL と、可変であるパラメータを分けて与えると、2回目以降の検索が早くなる可能性があります。できるだけ SQL は変化させず、パラメータで対応できるところはパラメータで対応するようにしてみましょう。
|