2017-11-21 5 views
0

私が使用している会社の図面ログは、MS Access VBAで書かれています。元のコードは15年以上前に他の人によって書かれましたが、私たちは解決策が見つからないレポート機能でエラーに遭遇しています。次のSQLクエリは何をしますか?

私は問題を抱えているクエリは次のようになります。

Select Case Me.frameBaseType 
    Case 1 'All drawings 
     strFROM = "FROM (Company RIGHT JOIN Drawings ON Company.ID = Drawings.Company) LEFT JOIN Revisions ON Drawings.ID = Revisions.DwgID " 

    Case 2 'Most recent revision 
     strFROM = "FROM Company RIGHT JOIN ((Drawings INNER JOIN [For Report - Group Revision] ON Drawings.ID = " 
     strFROM = strFROM & "[For Report - Group Revision].CbnDwgID) INNER JOIN Revisions ON (Drawings.ID = Revisions.DwgID) AND " 
     strFROM = strFROM & "([For Report - Group Revision].RecentRevision = Revisions.ESIRevision)" 
     strFROM = strFROM & " AND ([For Report - Group Revision].RevDate = Revisions.RevDate)" 
     strFROM = strFROM & ") ON Company.ID = Drawings.Company " 

    Case 3 'Due or late in routing 
     strFROM = "FROM (Company RIGHT JOIN Drawings ON Company.ID = Drawings.Company) LEFT JOIN Revisions ON Drawings.ID = Revisions.DwgID " 
     strWHERElate = "WHERE (((Revisions.Due)=1 Or (Revisions.Due)=2)) " 
     strWHERE = strWHERElate 

    Case 4 'Due or late from Vendor 
     strFROM = "FROM (Company RIGHT JOIN Drawings ON Company.ID = Drawings.Company) LEFT JOIN Revisions ON Drawings.ID = Revisions.DwgID " 
     strWHERElate = "WHERE (((Revisions.Due)=3 Or (Revisions.Due)=4)) " 
     strWHERE = strWHERElate 
End Select 

誰もが表記[For Report - Group Revision]は、SQLクエリで何を意味するのか知っていますか?

+1

これはおそらく完全なクエリすることはできませんので、「それは何をするのでしょうか?」誰もあなたに言うことはできません...どちらもエラーはありません。 [Report - Group Revisionの場合]フォームまたはレポート名にすることができます.... – hetOrakel

+0

大括弧( '['、 ']')は、空白でフィールドを指定するために使用されます。 –

+1

....なぜ人々は 'RIGHT JOIN'を使うのですか?なぜ、最初の 'FROM'リファレンスとしてそのテーブルを使用するのではなく、' LEFT JOIN'をもう1つ使うのですか? –

答えて

0

大括弧はエンティティ名の引用に使用されます。標準SQLは"を使用します。

この文脈では、[For Report - Group Revision]は、ビュー、レポートまたは他のデータソースなどの表または表のようなオブジェクトを指します。

+0

つまり、角ではなく角かっこです。 – tonypdmtr

0

これは、空白や英数字以外の文字を含むテーブル名またはクエリ名です。角括弧は、不適切な名前のオブジェクト(私の意見)を囲むためにのみ使用されます。

0

内部結合した後それは、データベース内のテーブルの名前またはビュー(オブジェクト)であるが、テーブルやビューを来る:

Drawings INNER JOIN [For Report - Group Revision] 
関連する問題