Sql 不支持联接表达式
我收到错误3296连接表达式不受支持的访问错误,但我似乎无法找出原因。。。有什么想法吗Sql 不支持联接表达式,sql,vba,ms-access,Sql,Vba,Ms Access,我收到错误3296连接表达式不受支持的访问错误,但我似乎无法找出原因。。。有什么想法吗 Public Sub BuildTempTable() If IsDebugMode = 0 Then On Error GoTo BuildTempTable_Error Dim strSQL As String CurrentDb.Execute ("DELETE *FROM tblTempCalendar") strSQL = "INSERT INTO tblTem
Public Sub BuildTempTable()
If IsDebugMode = 0 Then On Error GoTo BuildTempTable_Error
Dim strSQL As String
CurrentDb.Execute ("DELETE *FROM tblTempCalendar")
strSQL = "INSERT INTO tblTempCalendar ( ActivityID, Activity, ActivityCompleted, ActivityTime, ActivityDate, ActivityType, ActivityDesc ) " _
& " SELECT tblActivity.ActivityID, IIf(IsNull([tblActivity].[ContactID])=False,[tblContact].[LastName] & ', ' & [tblContact].[FirstName] & ', ' & tblContact.Company,IIf(IsNull([tblActivity].[EmployeeID])=False,[tblEmployee].[EmployeeLastName] & ', ' & [tblEmployee].[EmployeeFirstName],'N/A')) AS Activity, tblActivity.ActivityCompleted, tblActivity.ActivityTime, tblActivity.ActivityDate, tblActivity.ActivityType, IIf(IsNull([activitytime]),'',[activitytime] & ' ') & IIf(IsNull([tblActivity].[employeeid]),'','Employee: ' & [tblEmployee].[employeelastname] & ', ' & [tblemployee].[employeefirstname] & ' ') & IIf(IsNull([tblActivity].[ContactID]),'','Contact: ' & [tblContact].[LastName] & ', ' & [tblContact].[FirstName] & ' ') & IIf(IsNull([tblActivity].[Description]),'','Description: ' & [tblActivity].[Description]) AS ActivityDesc " _
& " FROM ((tblActivity LEFT JOIN tblEmployee ON tblActivity.EmployeeID = tblEmployee.EmployeeID) LEFT JOIN tblEmployee ON tblActivity.EmployeeID = tblEmployee.EmployeeID) "
strSQL = strSQL & " WHERE format(ActivityDate,'yyyym') = " & intCalYear & intCalMonth
If Nz(Me.comboFilterCompleted, 999) <> 999 Then
strSQL = strSQL & " AND ActivityCompleted = " & Me.comboFilterCompleted
End If
If Nz(Me.comboFilterType, "(All)") <> "(All)" Then
strSQL = strSQL & " AND ActivityType = '" & Me.comboFilterType & "'"
End If
If Nz(Me.comboFilterEmployee, 0) <> 0 Then
strSQL = strSQL & " AND tblActivity.EmployeeID = " & Me.comboFilterEmployee
End If
If Nz(Me.comboFilterCompleted, 999) <> 999 Or Nz(Me.comboFilterType, "(All)") <> "(All)" Or _
Nz(Me.comboFilterEmployee, 0) <> 0 Or strRecordSource = "qryActivityListFilter" Then
Me.cmdShowAll.Visible = True
Else
Me.cmdShowAll.Visible = False
End If
CurrentDb.Execute (strSQL)
BuildTempTable_Exit:
Exit Sub
BuildTempTable_Error:
Call ErrorLog(Err.Description, Err.Number, Me.Name, Erl, "BuildTempTable")
Resume BuildTempTable_Exit
End Sub
ON条件需要引用唯一的项。添加一个“as tblemployee2”,并将ON更改为引用tblemployee2.employeeid
FROM ((tblactivity
LEFT JOIN tblemployee
ON tblactivity.employeeid = tblemployee.employeeid)
LEFT JOIN tblemployee as tblemployee2
ON tblactivity.employeeid = tblemployee2.employeeid)
你能发布Debug.Print strsqls的输出吗?为什么对同一个表2使用left jointimes@VigneshKumar这没什么问题,但我希望至少其中一个上面会有一个别名。我还希望这里涉及一些分隔符
strSQL=strSQL&“WHERE format(ActivityDate,'yyyyym')=”&intCalYear&intCalMonth
当我将sql命令作为字符串时,我总是首先让它作为实际的查询来工作,以确保查询本身是正确的。
FROM ((tblactivity
LEFT JOIN tblemployee
ON tblactivity.employeeid = tblemployee.employeeid)
LEFT JOIN tblemployee as tblemployee2
ON tblactivity.employeeid = tblemployee2.employeeid)