2012-04-20 23 views
5

Truy vấn sau đây cho tôi lỗi cú pháp "(missing operator)". Đầu ra mong muốn là kết hợp dữ liệu từ các bảng [dbo_tbl*] và xem [vw_*]. Tất cả các chìa khóa tôi đã sử dụng tồn tại. Bất kỳ ý tưởng?Lỗi cú pháp (toán tử bị thiếu) trong Truy vấn 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

Cảm ơn bảng chỉnh sửa màu xanh lam. Newbie ở đây, có thông tin về định dạng cho mục nhập trên trang web này ở đâu đó không? Định dạng của tôi bị xóa khỏi bài đăng gốc của tôi. – cixelsyd

+0

Để định dạng văn bản dưới dạng mã, hãy chọn văn bản sau đó nhấn nút mẫu mã trông giống như "{}". Bạn cũng có thể chọn văn bản sau đó nhấn 'Ctrl + k'. Thông tin thêm về các tùy chọn chỉnh sửa tại đây: http://stackoverflow.com/editing-help – HansUp

Trả lời

6

Với Access, mỗi gia nhu cầu ngoặc, nói:

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; 

Nếu bạn có một bản sao của MS Access, bạn có thể dễ dàng nhìn thấy các dấu ngoặc đơn yêu cầu bằng cách sử dụng cửa sổ thiết kế truy vấn để xây dựng tham gia của bạn .

Bạn có thể sử dụng VBA để kiểm tra các loại lĩnh vực, ví dụ:

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 

Các DataTypeEnum bảng chứa các mô tả văn bản cho các giá trị số được trả về bởi 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

Cảm ơn @Remou. Bây giờ tôi gặp lỗi không khớp loại khi thực hiện truy vấn. – cixelsyd

+0

Điều này có thể là do một trong các kết quả phù hợp với loại khác nhau, ví dụ: khớp với loại văn bản với trường loại số (cột), ví dụ: dbo_tbl_BOD.frev = vw_DRHRelfilter.Rev' – Fionnuala

+0

Tôi có thể dễ dàng xem kiểu dữ liệu trong các bảng Access của tôi, nhưng làm cách nào để xác định kiểu dữ liệu được trả về trong các khung nhìn? – cixelsyd

Các vấn đề liên quan