Vba 我可以在动态查询中使用默认值来避免向用户查询参数吗?
我为用户创建了一个按钮,用于生成多个交叉表,然后将交叉表合并到一个表中,自动导出到Excel。不幸的是,由于数据的原因,有时交叉表具有不同的列数(基于数据的正常变化)。因此,当代码试图从不存在的字段中进行选择时,用户有时会被查询参数(对于12个类别中的14种缺陷类型,最多查询168次)。有没有办法让代码使用默认值来代替查询用户 这是我用来合并两个交叉表的SQL代码(略为缩写),但我真的希望这样做不会打扰用户。具体地说,如果tblMajorDefectsCrossTabX没有[Major 1]的字段,我如何使其默认为零,或nulls,而不是打扰用户Vba 我可以在动态查询中使用默认值来避免向用户查询参数吗?,vba,ms-access,parameters,default,Vba,Ms Access,Parameters,Default,我为用户创建了一个按钮,用于生成多个交叉表,然后将交叉表合并到一个表中,自动导出到Excel。不幸的是,由于数据的原因,有时交叉表具有不同的列数(基于数据的正常变化)。因此,当代码试图从不存在的字段中进行选择时,用户有时会被查询参数(对于12个类别中的14种缺陷类型,最多查询168次)。有没有办法让代码使用默认值来代替查询用户 这是我用来合并两个交叉表的SQL代码(略为缩写),但我真的希望这样做不会打扰用户。具体地说,如果tblMajorDefectsCrossTabX没有[Major 1]的字
mySql = "SELECT tblMajorDefectsCrossTabX.[Contractor Dept] AS [Contractor Dept], " & _
"tblMajorDefectsCrossTabX.[Major 1], tblMajorDefectsCrossTabX.[Major 7], " & _
"tblMinorDefectsCrossTabX.[Minor 1], tblMinorDefectsCrossTabX.[Minor 7] " & _
"FROM tblMajorDefectsCrossTabX LEFT JOIN tblMinorDefectsCrossTabX " & _
"ON tblMajorDefectsCrossTabX.[Contractor Dept] = tblMinorDefectsCrossTabX.[Contractor Dept] " & _
"UNION " & _
"SELECT tblMinorDefectsCrossTabX.[Contractor Dept] AS [Contractor Dept], " & _
"tblMajorDefectsCrossTabX.[Major 1], tblMajorDefectsCrossTabX.[Major 7], " & _
"tblMinorDefectsCrossTabX.[Minor 1], tblMinorDefectsCrossTabX.[Minor 7] " & _
"FROM tblMajorDefectsCrossTabX RIGHT JOIN tblMinorDefectsCrossTabX " & _
"ON tblMajorDefectsCrossTabX.[Contractor Dept] = tblMinorDefectsCrossTabX.[Contractor Dept];"
On Error Resume Next
db.QueryDefs.Delete "qryX" 'Remove temporary query if exists
Set QD = db.CreateQueryDef("qryX", mySql) 'create temporary query
DoCmd.RunSQL "SELECT * INTO tblMergeDefectCrossTabX FROM qryX;"