0
嘗試將me.filter的內容附加到查詢的末尾。將表單過濾器轉換到Where子句
當我得到?qdf.sql的結果並將它們放入常規查詢中時,得到'參數子句中的語法錯誤'。
PARAMETERS par_car_id Long; SELECT tool_tran.car_id,tool_tran.d008g,tool_tran.d046d INTO tmp_tbl_tool_export FROM tool_tran;
On Error GoTo ErrTrap
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim rst As DAO.Recordset
Dim strNewWHERE As String
Dim strSQL As String
Dim i As Integer
If fnTableExists("tmp_tbl_tool_export") = True Then
DoCmd.DeleteObject acTable, "tmp_tbl_tool_export"
Else
End If
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("qry_tmp_tbl_tool_export")
If Me.Filter <> "" Then
strNewWHERE = " WHERE ((tool_tran.car_id)=[forms]![frm_select_car_universal]![txt_car_id]) AND " & Me.Filter
strNewWHERE = Replace(strNewWHERE, "[", "")
strNewWHERE = Replace(strNewWHERE, "]", "")
strNewWHERE = Replace(strNewWHERE, "qry_tool_tran_expanded", "tool_tran")
Else
End If
'looks to append converted filter to end of query def
If strNewWHERE <> "" Then
qdf.sql = Left(qdf.sql, InStr(qdf.sql, ";") - 1) & strNewWHERE & ";"
Else
qdf.sql = Left(qdf.sql, InStr(qdf.sql, ";") - 1)
End If
qdf.Parameters("par_car_id") = [Forms]![frm_select_car_universal]![txt_car_id]
qdf.Execute
qdf.Close
Set qdf = Nothing
Set dbs = Nothing
我看到您的帖子如何改進的東西,但仍出錯。我想我知道爲什麼根據你所說的話。 – Kaw4Life
恐怕這種方法不起作用。該查詢有多個連接,因此無法找到正確的表名稱以在where語句中的字段名稱前綴。 – Kaw4Life
不太確定你的意思,但只有在字段名稱不唯一的情況下,表名只需加前綴 - 它始終可以在查詢中使用別名。 – Gustav