Syntax error (missing operator) in query expression

前端 未结 3 1814
我在风中等你
我在风中等你 2020-12-21 19:26

I have the following SQL Statement that works fine in SQL Server but in Access gets me an error

\'ERM_HAZARD.[HAZARDID] = ERM_XREF_HAZARD_CAT.[HAZARDID] 
INN         


        
相关标签:
3条回答
  • 2020-12-21 20:09

    'ERM_HAZARD.[HAZARDID] = ERM_XREF_HAZARD_CAT.[HAZARDID] INNER JOIN ERM_HAZARDSTATUS ON ERM_HAZARD.HAZARDSTATUSID = ERM_HAZARDSTATUS.HAZARDSTATUSI'

    Missing de "D" at the end of HAZARDSTATUSID

    0 讨论(0)
  • 2020-12-21 20:20

    MS Access is very particular with the parentheses in queries. When you have multi-table joins a pair of parentheses must be around each join:

    SELECT ERM_HAZARD.HAZARDID AS PKTrans, 
        ERM_HAZARD.EXTREF AS No, 
        ERM_CAT.NAME AS CaseType, 
        ERM_HAZARD.CREATED as CaseDate, 
        ERM_HAZARD.NAME AS Title, 
        ERM_HAZARD.DESCRIPTION AS DescriptionTrans,  
        ERM_ORGANISATION.NAME AS ResponsibleUnit, 
        ERM_HAZARD.REVIEWDATE AS CaseDeadline, 
        ERM_HAZARDSTATUS.NAME as Status, 
        ERM_ORGANISATION.NAME AS UnitInCharge, 
        ERM_PERSONEL.NAME AS PersonInCharge 
    FROM ((((ERM_PERSONEL 
    INNER JOIN ERM_HAZARD 
        ON ERM_PERSONEL.[PERSONELID] = ERM_HAZARD.[PERSONELID])
    INNER JOIN ERM_ORGANISATION 
        ON ERM_ORGANISATION.[ORGANISATIONID] = ERM_HAZARD.[ORGANISATIONID])
    INNER JOIN ERM_XREF_HAZARD_CAT 
        ON ERM_HAZARD.[HAZARDID] = ERM_XREF_HAZARD_CAT.[HAZARDID])
    INNER JOIN ERM_CAT 
        ON ERM_CAT.[CATID] = ERM_XREF_HAZARD_CAT.[CATID])
    INNER JOIN ERM_HAZARDSTATUS 
        ON ERM_HAZARD.HAZARDSTATUSID = ERM_HAZARDSTATUS.HAZARDSTATUSID
    WHERE ERM_XREF_HAZARD_CAT.PERIODID= (SELECT MAX(ERM_XREF_HAZARD_CAT.PERIODID) 
                                         FROM ERM_XREF_HAZARD_CAT) 
    ORDER BY ERM_XREF_HAZARD_CAT.PERIODID DESC,  ERM_HAZARD.HAZARDID, ERM_CAT.NAME
    
    0 讨论(0)
  • 2020-12-21 20:20

    To add to this. If you are creating a Pass-Through Query, you need to identify the connections string before declaring the SQL.

    sub test()
    Dim dbs As Database
    Dim qdf As DAO.QueryDef
    Dim rstSQL As DAO.Recordset
    Dim strSQL As String
    
    On Error GoTo errTrap
    
    Set dbs = CurrentDb
    
    Set qdf = dbs.CreateQueryDef("")
    
    qdf.Connect = ConStringMailing
    qdf.ReturnsRecords = True
    
    qdf.SQL = "Select * FROM TABLE"
    Set rstSQL = qdf.OpenRecordset
    
    errTrap:
    end sub
    
    0 讨论(0)
提交回复
热议问题