|
こんにちは
よろしくお願い致します
XP、2003
アクセス一応使えるつもりです
ADPまだ良くわかりません
SQLサーバー ADPからのぞけるぐらいです
下記わかりにくいと思いますがよろしくお願い致します
ADPの操作は怖いのでMDBで試そうと
MDBにTBLをインポート
ADPのクエリは、外部DB参照のSQLがあってうまく動作しなかったので
手動でMDBに作成しました
ADPのクエリ結果のレコード件数が117,820件
MDBでのクエリ結果が初回117,818件でした
なぜだかわからなかったので
もう一度ADP、MDBのクエリをデザインで見比べてみましたが
構造に違いはありませんでした
で試しに、もう一度MDBのクエリを実行すると
レコード件数が117,819件でした
??と思って、何度も再実行してみましたが
117,819件で、117,818件は見間違えかと思いました
上記は昨日です
で、今日、
参照している各TBLのレコード件数や
クエリから参照しているクエリのレコード件数を
確認してみましたが
不具合の発生するクエリ以外は全て同じレコード件数でした
その後そのクエリをもう一度試すとレコード件数は117,820件!!
昨日の結果はなんっだんだろう、が取合えず良かった
で
再度試すと 117,818件
??
再度試すと 117,819件
再度試すと 117,819件
再度試すと 117,819件
で、別のマシンBで試してみましたが
こちらは、117,819件でした
で
マシンC vista、2007で試してみました
初回 117,818件
2回目 117,820件
3回目 117,820件となりました
ちなみにADPは毎度 117,820件となります
そこで、マシンBで
リンクTBLをインポートし自MDB内で試してみましたが
レコード件数は 117,819件でした
その後
マシンBにて元のMDBで試行して見ましたが
1度 117,820件がありましたが
他は 117,819件でした
最後に上記MDBの最適化を実行して見ましたが
その結果は
一回目117,819件でした
二回目117,820件でした
三回目117,819件でした
不具合クエリは
クエリ Q03JOB仕リ
です
何かアドバイス有りましたらよろしくお願い致します
構造は
JOB.mdb
リンクTBL LTタイプ 9
リンクTBL LT仕様 228
リンクTBL LT単位 142
リンクTBL LT部位 145
リンクTBL LT名 153
自TBL T単価 117820
クエリ Q01仕様 228
クエリ Q02JOBリ 117820
クエリ Q03JOB仕リ 117819
マスタ.mdb
自TBL LTタイプ 9
自TBL LT仕様 228
自TBL LT単位 142
自TBL LT部位 145
自TBL LT名 153
クエリ Q01仕様
SELECT LT仕様.*, [仕区C]*1000+[仕様C] AS tmp
FROM LT仕様;
クエリ Q02JOBリ
SELECT T単価.*, 1000+[仕様C1] AS S1, 2000+[仕様C2] AS S2,
3000+[仕様C3] AS S3, 4000+[仕様C4] AS S4, 5000+[仕様C5] AS S5,
6000+[仕様C6] AS S6, 7000+[仕様C7] AS S7
FROM T単価;
クエリ Q03JOB仕リ
SELECT Q02JOBリ.*,
Q01仕様.名称, Q01仕様_1.名称, Q01仕様_2.名称, Q01仕様_3.名称,
Q01仕様_4.名称, Q01仕様_5.名称, Q01仕様_6.名称
FROM (((((((((Q02JOBリ LEFT JOIN LT部位
ON Q02JOBリ.部C = LT部位.部C) LEFT JOIN LT名
ON (Q02JOBリ.区C = LT名.区C) AND (Q02JOBリ.工種3C = LT名.工種3C)
AND (Q02JOBリ.工種2C = LT名.工種2C) AND (Q02JOBリ.工種1C = LT名.工種1C))
LEFT JOIN LT単位 ON Q02JOBリ.単位C = LT単位.単位C)
LEFT JOIN Q01仕様 ON (Q02JOBリ.S1 = Q01仕様.tmp)
AND (Q02JOBリ.工種1C = Q01仕様.工種C)) LEFT JOIN Q01仕様 AS Q01仕様_1
ON (Q02JOBリ.S2 = Q01仕様_1.tmp) AND (Q02JOBリ.工種1C = Q01仕様_1.工種C))
LEFT JOIN Q01仕様 AS Q01仕様_2 ON (Q02JOBリ.S3 = Q01仕様_2.tmp)
AND (Q02JOBリ.工種1C = Q01仕様_2.工種C)) LEFT JOIN Q01仕様 AS Q01仕様_3
ON (Q02JOBリ.S4 = Q01仕様_3.tmp) AND (Q02JOBリ.工種1C = Q01仕様_3.工種C))
LEFT JOIN Q01仕様 AS Q01仕様_4 ON (Q02JOBリ.S5 = Q01仕様_4.tmp)
AND (Q02JOBリ.工種1C = Q01仕様_4.工種C)) LEFT JOIN Q01仕様 AS Q01仕様_5
ON (Q02JOBリ.S6 = Q01仕様_5.tmp) AND (Q02JOBリ.工種1C = Q01仕様_5.工種C))
LEFT JOIN Q01仕様 AS Q01仕様_6 ON (Q02JOBリ.S7 = Q01仕様_6.tmp)
AND (Q02JOBリ.工種1C = Q01仕様_6.工種C);
|
|