2011-01-18 23 views
0

ハロー専門家、基本的な質問

私は2つのmdb databaesを持ち、old.mdbとnew.mdbが、彼らは同じテーブルと構造を持っていると言います。私は、2つのデータベースの1つの特定のテーブルでどのレコードが変更されているかを確認したいだけです。私は長い間をGoogleで検索し、最後に次のSQLスクリプトに出くわした:

SELECT Min(tmp.TableName) AS TableName, tmp.ID, tmp.CO1
FROM ( SELECT RECIPETABLE1 IN 'C:\MyRecipes\old.mdb' as TableName, sc_head.ID, sc_head.CO1
FROM sc_head
UNION ALL
SELECT RECIPETABLE1 in 'C:\MyRecipes\new.mdb ' as TableName, compare_sc_head.ID, compare_sc_head.CO1
FROM compare_sc_head
) AS tmp
GROUP BY tmp.ID, tmp.CO1
HAVING Count(*)=1
ORDER BY tmp.ID

ランニング備、私は

任意の洞察力は感謝している「()せずに、オペレータでは」というエラーが発生しました。

ジョン

答えて

1

試してみてください。

SELECT Min(tmp.TableName) AS TableName, tmp.ID, tmp.CO1 
FROM 
    (SELECT 'RECIPETABLE1' as TableName, sc_head.ID, sc_head.CO1 
    FROM sc_head IN 'C:\MyRecipes\old.mdb' 
    UNION ALL 
    SELECT 'RECIPETABLE2' as TableName, compare_sc_head.ID, compare_sc_head.CO1 
    FROM compare_sc_head in 'C:\MyRecipes\new.mdb') As tmp 
GROUP BY tmp.ID, tmp.CO1 
HAVING Count(*)=1 
ORDER BY tmp.ID 

しかし、私は比較のために少しVBAを使用することが容易になるだろう示唆しています。

クエリデザインウィンドウを使用して単一のテーブルと非常に少数のフィールドを比較するとあまりにも不快ではありませんが、より多くのテーブルのテーブルではVBAを使用する方がはるかに簡単です。

クエリのデザインウィンドウで実行されるクエリは次のとおりです。

NEWDB内のレコードではなくOldDB

SELECT n.ID, n.CO1 
FROM 
    (SELECT ID, CO1 
    FROM compare_sc_head 
    IN 'C:\MyRecipes\new.mdb') AS n 
LEFT JOIN 
    (SELECT ID, CO1 
    FROM sc_head 
    IN 'C:\MyRecipes\old.mdb') AS o 
ON n.ID = o.ID 
WHERE o.ID Is Null 

OldDBで記録したがNEWDB

SELECT o.ID, o.CO1 
FROM 
    (SELECT ID, CO1 
    FROM sc_head 
    IN 'C:\MyRecipes\old.mdb') AS o 
LEFT JOIN 
    (SELECT ID, CO1 
    FROM compare_sc_head 
    IN 'C:\MyRecipes\new.mdb') AS n 
ON o.ID = n.ID 
WHERE n.ID Is Null 

にレコードIDが一致していないが、CO1が

SELECT n.ID, n.CO1, o.CO1 
FROM 
    (SELECT ID, CO1 
    FROM sc_head 
    IN 'C:\MyRecipes\old.mdb') AS o 
INNER JOIN 
    (SELECT ID, CO1 
    FROM compare_sc_head 
    IN 'C:\MyRecipes\new.mdb') AS n 
ON o.ID = n.ID 
WHERE n.CO1 & "" <> o.CO1 & "" 
+0

補正いただきありがとうございますされません。実行すると別のエラーが表示されます:Union Queryで構文エラーが発生しました。 – JohnMunich

+0

@JohnMunichごめんなさい、私は訂正してテストしました – Fionnuala

+0

素晴らしいです!今度はこれが動作します。このスクリプトを実行すると、変更されたフィールドだけでなく、すべてのフィールドが表示されます。他の方法はありますか? – JohnMunich