问题描述
在我的MS Access项目中,我有一个用来收集几个参数的表格。当用户单击def get_json_chunks(df,splits):
"""converts each chunk to a dict which is basically going to be a JSON load"""
#documents = {"documents": []} # <-- wrong place
df_chunks = get_chunk_df(df,splits)
for chunk_df in df_chunks:
documents = {"documents": []} # <-- good place
for idx,row in chunk_df.iterrows():
documents["documents"].append({
"id": str(idx + 1),"text": row["lang"]
})
yield documents
按钮时,它将运行一些代码,这些代码将使用Search
和DoCmd.OpenReport
打开报告。
我已经用其他10种形式做到了,所有方式都完全相同。当打开此特定报告时,出现错误。
这是我的WhereCondition
方法:
Search_Button_Click
问题
我尝试使用Private Sub Search_Button_Click()
Dim str As String
str = "[n.Complete] = True"
str = str & " AND [pn.Processing_Date] BETWEEN #" & From_Date.value & "# AND #" & To_Date.value & "#"
str = str & " AND pn.nest_Number LIKE '" & nest_Number.value & "*'"
DoCmd.OpenReport "r_Processed_Jobs_New",acViewReport,WhereCondition:=str
End Sub
甚至是n.[Complete]
,但是两个选项都提示我:n.Complete
代表Enter Parameter Value
。
我的项目
报告n.Complete
设置为查询Record Source
。这是查询:
Q_Processed_Jobs
所以我有SELECT nj.Job_Number,nj.nest_Number,nj.Customer_Name,nj.Job_Date,pn.Processing_Date AS [Processing Date]
FROM (nest AS n INNER JOIN nest_Job AS nj ON n.nest_Number = nj.nest_Number) INNER JOIN Processing_nest AS pn ON n.nest_Number = pn.nest_Number;
,该别名为表n
的别名。报告中没有nest
或Complete
。仅在n.Complete
中应使用它来过滤查询结果。表别名和列存在,所以为什么提示我好像无法识别它们?
工作示例
同样,我已经无数次使用其他查询和报告来执行此操作,并且它们均不会出现这些错误。为什么会在这里发生?
这是我的另一种表格的示例:
WhereCondition
和相应的查询:
Private Sub Search_Button_Click()
Dim str As String
str = "[t.Date_Received] BETWEEN #" & From_Date.value & "# AND #" & To_Date.value & "#"
str = " AND [pli.PO_Number] = " & PO_Number.value
DoCmd.OpenReport "r_Receiving_By_Date",WhereCondition:=str
End Sub
解决方法
DoCmd.OpenReport ...,WhereCondition:=str
获取报告(Q_Processed_Jobs
)的记录源,并将WhereCondition 应用于该查询的结果集。
因此,如果您要按n.Complete
进行过滤,则该字段必须是查询的SELECT
列表的一部分。即使报表上并未实际使用它。
pn.Nest_Number
同样适用。
n.[Complete]
是正确的格式(或n.Complete
)。