09/04/18 23:57:54
>>941
手元に大量のデータがないから検証できないんだけど、
もちろんその記述で問題無く抽出できるわけですが、
WHERE条件を
WHERE [キーワード] IS NULL OR LIKE "*" & [キーワード] & "*"
と記述した場合と速度の差は出ますか?早くなる?遅くなる?
943:935
09/04/19 00:02:24
>>939,940
ありがとうございます
やはり今の環境は最悪なのですね;;
高いからと言って会社がライセンス買ってくれないんですよ
2007と2000って1つのPCで混在可能なんですか!?
でしたらそれが一番いいかもしれませんね。
今もいちいち2000の人のPCを仕事の合間に借りてマクロ組み直したりしてますので・・
しかしそうなると私が2007を使うメリットは全くないんでしょうか?
944:名無しさん@そうだ選挙にいこう
09/04/19 00:02:29
手元に大量のデータを用意してやってみろ
945:名無しさん@そうだ選挙にいこう
09/04/19 04:32:48
>>942
多分速くはならないと思うが・・・
URLリンク(www.naboki.net)
要約すると絞り込む条件は少ない方が速いってことらしい。
946:名無しさん@そうだ選挙にいこう
09/04/19 07:29:12
>>943
>2007と2000って1つのPCで混在可能なんですか!?
可能。2007入ったまま2000インストールすればよい。2000は1枚あれば何人でも使える。
自分のはデフォルト2007になってるから2000使うときは2000起動させてから
ファイルを開く。
>私が2007を使うメリットは全くないんでしょうか
ある。今後、2007使う人増えるから2007でも作成できるようにしておく。
947:名無しさん@そうだ選挙にいこう
09/04/19 08:18:51
2000ってもう手にいれられないでしょ?
948:942
09/04/19 08:33:52
>>945
おお!これは参考になります。
そっか、動的にクエリを作成した方がいいのかな。
949:名無しさん@そうだ選挙にいこう
09/04/19 09:26:21
>>890 , >>942
インデックスが使われてるか(Index Schan か Table Schan か)調べる
showplan
・Jet4.0以降でも使えます。
・ACEで使えるか試してません。
(1) レジストリにキーを追加する。
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Debug
(2) 上記キーに下記の設定を追加する。
種類:文字列
名前:JETSHOWPLAN
(3) 指定する値は次のとおり。
実行プランを出力する :ON
実行プランを出力しない:OFF
なお、Jetを再起動しないと変更は反映されません。
(4) 出力ファイルは、カレントフォルダに
showplan.out
という名前で作成されます。
<参考文献>
Dan Haught、Jim Ferguson 著
株式会社 日本ドキュメンテックス 訳
篠原 光太郎 監修
『Microsoft Jetデータベースエンジンプログラマーズガイド 改訂新版 』
, 株式会社アスキー, 1998年, 700ページ。
なお、英語でよければ、
URLリンク(support.microsoft.com)
950:名無しさん@そうだ選挙にいこう
09/04/19 09:31:04
>>947
去年の8月通販で office 2000 pro 買った。ほぼ定価かもしれんが、しょうがない
まぁ、通常版だから いいか
951:名無しさん@そうだ選挙にいこう
09/04/19 10:34:45
四、五万したんですか
952:名無しさん@そうだ選挙にいこう
09/04/19 10:35:50
Accessだけ単体で売ってないの?
953:名無しさん@そうだ選挙にいこう
09/04/19 10:48:22
・ShowPlan の設定箇所が変更になっています。従来、JETSHOWPLAN=ON の設定箇所は
HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Debug のレジストリキーでしたが、2007 では
HKLM\SOFTWARE\Microsoft\Office\12.0\Access\Access Connectivity Engine\Debug です。
954:名無しさん@そうだ選挙にいこう
09/04/19 11:22:50
>>952 売ってるけど、2000使ってる人いるなら、その人のCD使えばオッケ。
955:名無しさん@そうだ選挙にいこう
09/04/19 19:29:16
よくわからんのだが
WHERE [キーワード] IS NULL OR LIKE "*" & [キーワード] & "*"
これは
WHERE ([フィールド何とか] IS NULL) OR ([フィールド何とか] LIKE "*" & [キーワード] & "*")
みたいなものの書き間違いなのか
それにしてもこれによって一体どんな抽出を期待しているんだ
フィールド何とかがたとえば商品名だとして
商品名Nullのものを抽出したいのか
956:名無しさん@そうだ選挙にいこう
09/04/19 20:22:56
>>933
アクセスごとき使えるようにならないと
957:名無しさん@そうだ選挙にいこう
09/04/19 22:47:37
Access2007 のフォーム右クリックフィルタで "おまんこ"に等しいで
"おまんこ" も "オマンコ" もフィルタ選択されちゃう
その後、区別しようと並べ替えても、"おまんこ" と "オマンコ" は混在したまま同一視されてる
これって非常に困るよね、切実な問題だ
958:943
09/04/19 22:56:04
2000と2007の混在について質問した者です。
皆さま回答ありがとうございました。
お礼が遅くなってすみません。
混在は普通にできるんですね。
2000なら個人で買ったのがあるから会社に持ってってインストールします。
がんばって2007勉強したのに他の人のPCでは開くことさえできないこともあったりして
本気で悩んでたので助かりました~^^
959:名無しさん@そうだ選挙にいこう
09/04/19 23:10:44
>>955
上で何も入力されなかった時全件表示したいって言ってたから多分それだろう。
ただ文字列型のフィールドならNullでも空白でも後半のみで事足りると思うけど。
>>957
内容はともかくバイナリで比較すれば区別つくらしい。
URLリンク(www.relief.jp)
960:名無しさん@そうだ選挙にいこう
09/04/19 23:17:14
説明不足ですみません
キーワードが空白の場合にというのは本当にそのままの意味で、
パラメータクエリでクエリを実行する時に、キーワードを入れないと
普通何も表示されませんが、その時に全てのレコードが表示されるように
したいのです。
具体的に言うと、顧客データのテーブル(住所、氏名、電話、担当者名)から
担当者ごとのデータを取り出したい場合、
通常なら「山田」とか「鈴木」とか担当者名を入力するとその担当顧客が出ますが、
担当者名を空欄にしてクエリを実行すると全顧客のデータが表示される形です。
今は普通にパラメータクエリを使ってるので、空欄だとレコードが一つも表示さ
れません。
ちなみに2003でVBAは使えません。
初心者なので稚拙な説明しかできなくてすみません。
961:942
09/04/19 23:17:33
>>955
その記述方法はよく使われるから知っておいて損はないよ。
WHERE [キーワード] IS NULL OR [キーワード]
ってのは、検索条件[キーワード]が入力されたらそれに合致
するものを抽出し、何も入力されなかったら、全件抽出する。
今回聞きたかったのは、LIKE "*" & [キーワード] & "*"ってのは
インデックスが効かなくて遅くなるから、何も条件が入力されなかった
場合にIS NULLの条件を先に書いておけば、早くなるかなってこと。
962:942
09/04/19 23:22:06
>>962
まさにこれ。担当者名の抽出条件を、
[キーワード] OR [キーワード] IS NULL
にすればいい。