Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 我可以在动态查询中使用默认值来避免向用户查询参数吗?_Vba_Ms Access_Parameters_Default - Fatal编程技术网

Vba 我可以在动态查询中使用默认值来避免向用户查询参数吗?

Vba 我可以在动态查询中使用默认值来避免向用户查询参数吗?,vba,ms-access,parameters,default,Vba,Ms Access,Parameters,Default,我为用户创建了一个按钮,用于生成多个交叉表,然后将交叉表合并到一个表中,自动导出到Excel。不幸的是,由于数据的原因,有时交叉表具有不同的列数(基于数据的正常变化)。因此,当代码试图从不存在的字段中进行选择时,用户有时会被查询参数(对于12个类别中的14种缺陷类型,最多查询168次)。有没有办法让代码使用默认值来代替查询用户 这是我用来合并两个交叉表的SQL代码(略为缩写),但我真的希望这样做不会打扰用户。具体地说,如果tblMajorDefectsCrossTabX没有[Major 1]的字

我为用户创建了一个按钮,用于生成多个交叉表,然后将交叉表合并到一个表中,自动导出到Excel。不幸的是,由于数据的原因,有时交叉表具有不同的列数(基于数据的正常变化)。因此,当代码试图从不存在的字段中进行选择时,用户有时会被查询参数(对于12个类别中的14种缺陷类型,最多查询168次)。有没有办法让代码使用默认值来代替查询用户

这是我用来合并两个交叉表的SQL代码(略为缩写),但我真的希望这样做不会打扰用户。具体地说,如果tblMajorDefectsCrossTabX没有[Major 1]的字段,我如何使其默认为零,或nulls,而不是打扰用户

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;"