2012-04-20 17 views
5

次のクエリは、"(missing operator)"構文エラーを表示しています。望ましい出力は、表[dbo_tbl*]のデータとビュー[vw_*]のデータの組み合わせです。私が使用したキーはすべて存在します。何か案は?アクセス権を持つMS-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; 
+0

編集のためにありがとうございました。初心者は、このサイトのどこかに登録するための書式設定に関する情報はありますか?私の書式は私のオリジナルのテキスト投稿からは削除されました。 – cixelsyd

+0

テキストをコードとして書式設定するには、テキストを選択して "{}"のようなコードサンプルボタンを押します。テキストを選択してCtrl + kを押すこともできます。オプションの編集に関する詳細はこちら:http://stackoverflow.com/editing-help – HansUp

答えて

6

、各ニーズの括弧に参加し、言う:

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アクセスのコピーを持っている場合は、あなたが簡単にあなたの加入を構築するために、クエリのデザインウィンドウを使用して、必要な括弧を見ることができます。

次の例のように、フィールドの種類を確認するために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 Boolean 
2 Byte 
3 Integer 
4 Long 
5 Currency 
6 Single 
7 Double 
8 Date 
9 Binary 
10 Text 
11 LongBinary 
12 Memo 
15 GUID 
16 BigInt 
17 VarBinary 
18 Char 
19 Numeric 
20 Decimal 
21 Float 
22 Time 
23 TimeStamp
+0

ありがとう@Remou。今は、クエリを実行するときに型の不一致エラーが発生します。 – cixelsyd

+0

これは、一致するタイプが異なる(例えば、テキストタイプを数値タイプのフィールド(カラム)と一致させる)ために、 'example dbo_tbl_BOD.frev = vw_DRHRelfilter.Rev'のために発生している可能性があります – Fionnuala

+0

データタイプ私のAccessテーブルで、どのように私はビューで返されたデータ型を決定するのですか? – cixelsyd

関連する問題