sql - 我不能在访问中使用查询定义对象作为变量
问题描述
注意:UPDATED:::: 我想创建一个名为 comp_val 的查询并将其与一个名为 FILTERS TABLE 的表连接起来。但是我不能使用左连接,除非我将 comp_val SQL 字符串保存为查询或表。comp_val 是在运行时生成的变量。我正在尝试创建一个名为 que_def 的查询定义,并为其分配一个名为“comp_val”的有效 sql 字符串。然后使用 que_def 创建一个带有名为“FILTERS”表的表的左连接查询。但是访问给了我一个类型不匹配错误,说我不能使用 que_def 作为变量来形成新的 sql 字符串这里是代码
Dim que_def As QueryDef
Dim all_info As String
Set que_def = db.CreateQueryDef(comp_val) 'new_query is a new sql query whose sql string can be set to comp_val
que_def.SQL = comp_val 'comp_val is a valid sql string
'after setting the que_def sql value to comp_val, it is supposed to form a new sql string
p1 = "SELECT " & que_def & ".Company_Name, " & que_def & ".Site_Name, " & que_def & ".Site_Location, " & que_def & ".Site_Contact, Filters_Table.Gen_Combination, " & que_def & ".Capacity(KVA), " & que_def & ".Alt_S/No, " & que_def & ".Engine_S/No, " & que_def & ".Filter_Type, " & que_def & ".Generator_Type,"
p2 = " Filters_Table.Generator_Name, Filters_Table.Capacity, Filters_Table.Fuel_Filter1_ID, Filters_Table.Fuel_Filter1_Qty, Filters_Table.Fuel_Filter2_ID, Filters_Table.Fuel_Filter2_Qty, Filters_Table.Oil_Filter1_ID, Filters_Table.Oil_Filter1_Qty, Filters_Table.Oil_Filter2_ID, Filters_Table.Oil_Filter2_Qty, Filters_Table.Water_Sep_ID, Filters_Table.Water_Sep_Qty, Filters_Table.Air_Filter_ID, Filters_Table.Air_Filter_Qty, Filters_Table.Engine_Oil1_ID, Filters_Table.Engine_Oil1_Qty, Filters_Table.CF_ID, Filters_Table.CF_Qty"
p3 = " FROM " & que_def & " LEFT JOIN Filters_Table ON " & que_def & ".Filter_Type = Filters_Table.Gen_Combination;"
all_info = p1 + p2 + p3
MsgBox ("IT IS DONE GOING THROUGH IT ALL")
但我不能使用“que_def”变量。我得到错误,类型不匹配。
注意:comp_Val 是一个选择查询,我试图将它加入到一个名为 filter's table 的表中,并且它应该带来一个名为 all_info 的新 sql 字符串。
解决方案
querydef 是一个对象,而不是字符串。您需要为其命名以在另一个查询中使用它。
Const qdName = "MyQuery"
Dim que_def As QueryDef
Set que_def = db.CreateQueryDef(Name:=qdName, SQLText:=comp_val)
' You did this already when creating the querydef, no need to do it again
' que_def.SQL = comp_val
'after setting the que_def sql value to comp_val, it is supposed to form a new sql string
p1 = "SELECT " & qdName & ".Company_Name, "
' etc.
推荐阅读
- apache-nifi - 如何使从 ListFile 处理器接收到的流文件等到其中一个特定流文件(如果存在)的处理完成?
- php - 如何仅在 Google Drive API 中列出所有共享文件夹和文件?
- sql - 在 SQL 中遇到嵌套的 where、group by 和 min/max
- html - 滚动到底部时使用 CSS Sticky 属性来提升项目
- php - 我写了下面的代码,我该如何清理它?谁能帮我写得更好?
- django - 警告:未定义主键类型时使用自动创建的主键,默认为 'django.db.models.AutoField'
- python - 关于 cupy-cuda100 的 CompileException
- javascript - 需要使用节点 js 来自多个输出的单个数组
- c# - 如何在 C# 中获取变量并将其存储在数据库中?
- angular - 如何使 ngx-mat-intl-tel-input 的搜索字段成为焦点?