6

次のクエリで"(missing operator)"構文エラーが発生します。目的の出力は、テーブル[dbo_tbl*]とビューからのデータの組み合わせです[vw_*]。私が使用したすべてのキーが存在します。何か案は?

SELECT dbo_tbl_BOD.fpartno AS PartNumber,
      dbo_tbl_BOD.frev AS RevisionIssue,
      vw_DOCSwType.DocID,
      vw_DRHRelfilter.Rev,
      vw_DOCSwType.DocTypeDesc,
      vw_DOCSwType.DocDesc,
      vw_DOCSwType.DwgNoLegacy,
      vw_DOCSwType.FileLocationOld,
      vw_DRHRelfilter.DateCreated,
      vw_DOCSwType.CreatedBy,
      vw_DRHRelfilter.Rel,
      vw_DRHRelfilter.RelLink
FROM dbo_tbl_BOD
LEFT JOIN vw_DRHRelfilter
      ON ((dbo_tbl_BOD.DocID=vw_DRHRelfilter.DocID)
     AND (dbo_tbl_BOD.frev=vw_DRHRelfilter.Rev))
 LEFT JOIN vw_DOCSwType
      ON (dbo_tbl_BOD.DocID=vw_DOCSwType.DocID)
ORDER BY PartNumber;
4

1 に答える 1

8

Accessでは、各結合に括弧が必要です。たとえば、次のようになります。

SELECT dbo_tbl_BOD.fpartno AS PartNumber,
dbo_tbl_BOD.frev AS RevisionIssue,
vw_DOCSwType.DocID,
vw_DRHRelfilter.Rev,
vw_DOCSwType.DocTypeDesc,
vw_DOCSwType.DocDesc,
vw_DOCSwType.DwgNoLegacy,
vw_DOCSwType.FileLocationOld,
vw_DRHRelfilter.DateCreated,
vw_DOCSwType.CreatedBy,
vw_DRHRelfilter.Rel,
vw_DRHRelfilter.RelLink
FROM (dbo_tbl_BOD
LEFT JOIN vw_DRHRelfilter
ON dbo_tbl_BOD.DocID=vw_DRHRelfilter.DocID
AND dbo_tbl_BOD.frev=vw_DRHRelfilter.Rev)
LEFT JOIN
vw_DOCSwType
ON dbo_tbl_BOD.DocID=vw_DOCSwType.DocID
ORDER BY PartNumber;

MS Accessのコピーがある場合は、クエリデザインウィンドウを使用して結合を作成することにより、必要な括弧を簡単に確認できます。

VBAを使用して、フィールドタイプを確認できます。次に例を示します。

Dim rs As DAO.Recordset
Dim fld As DAO.Field

Set rs = CurrentDb.OpenRecordset("query1")
For Each fld In rs.Fields
    Debug.Print fld.SourceField, fld.SourceTable, _
        DLookup("SQLName", "DataTypeEnum", "DataValue=" & fld.Type)
Next

テーブルDataTypeEnumには、fld.typeによって返される数値のテキスト説明が含まれています。

DataValue SQLName
1ブール
2バイト
3整数
4ロング
5通貨
6シングル
7ダブル
8日付
9バイナリ
10テキスト
11 LongBinary
12メモ
15GUID
16 BigInt
17 VarBinary
18文字
19数値
10進数
21フロート
22時間
23タイムスタンプ
于 2012-04-20T16:18:25.387 に答える