Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
将sql查询结果存储到变量access vba中_Vba_Ms Access - Fatal编程技术网

将sql查询结果存储到变量access vba中

将sql查询结果存储到变量access vba中,vba,ms-access,Vba,Ms Access,我有一个sql查询,它根据三个条件返回一些字段中的某些字段 LOC字段有一个字符串“Alipore” 日期大于或等于从窗体上的文本框获取值的变量sdate Date小于或等于变量edate,该变量从表单上的文本框中获取值 但我得到一个错误“两个少数参数2”错误 天啊,我找到了,太简单了。在access中运行它之前需要一个空间,但当我将它复制到VBA中并重新构造sql语句时 应该是 &“其中(((Salesdata.Loc)=‘Alipore’)”_ 而不是 &“WHERE(((Salesdata

我有一个sql查询,它根据三个条件返回一些字段中的某些字段

  • LOC字段有一个字符串“Alipore”
  • 日期大于或等于从窗体上的文本框获取值的变量sdate
  • Date小于或等于变量edate,该变量从表单上的文本框中获取值
  • 但我得到一个错误“两个少数参数2”错误


    天啊,我找到了,太简单了。在access中运行它之前需要一个空间,但当我将它复制到VBA中并重新构造sql语句时

    应该是

    &“其中(((Salesdata.Loc)=‘Alipore’)”_

    而不是


    &“WHERE(((Salesdata.Loc)=‘Alipore’)”

    错误发生在哪一行?您是否打算将
    startD
    作为
    变体
    ?还有一些SQL变体,日期需要在日期周围有
    #
    。例如2017年1月1日可能是这样,谢谢你的回复。现在我从vba err 3141运行时出现了一个错误,但作为查询运行良好。
    Sub Test()
        Dim rs As DAO.Recordset
        Dim sqlMax As String
        Dim result As Integer
        Dim startd, endd As String
    
        startd = Me.txtsdate.Value
    
        endd = Me.txtedate.Value
    
        sqlMax = "SELECT Sum(Salesdata.FOOD) AS SumOfFOOD, Sum(Salesdata.LIQUORS) AS SumOfLIQUORS, Sum(Salesdata.SMARTPORTION) AS SumOfSMARTPORTION, Sum(Salesdata.[SP TAKEAWAY]) AS [SumOfSP TAKEAWAY]," _
         & "Sum(Salesdata.TAKEAWAY) AS SumOfTAKEAWAY, Sum(Salesdata.TAX_KKCESS02) AS SumOfTAX_KKCESS02, Sum(Salesdata.TAX_SBC020) AS SumOfTAX_SBC020, Sum(Salesdata.TAX_SERVICECHARGE) AS SumOfTAX_SERVICECHARGE," _
         & "Sum(Salesdata.TAX_VAT145) AS SumOfTAX_VAT145, Sum(Salesdata.AMEX) AS SumOfAMEX, Sum(Salesdata.CASH) AS SumOfCASH, Sum(Salesdata.MASTERCARD) AS SumOfMASTERCARD, Sum(Salesdata.VISA) AS SumOfVISA, Sum(Salesdata.OTHERS) AS SumOfOTHERS," _
         & "Sum(Salesdata.Vcloud) AS SumOfVcloud, Sum(Salesdata.MANAGERAC) AS SumOfMANAGERAC FROM Salesdata" _
         & "WHERE (((Salesdata.Loc) = 'Alipore'))" _
         & "HAVING (((Salesdata.DATE)>=" & startd & " And (Salesdata.DATE)<=" & endd & "));"
    
        Set rs = CurrentDb.OpenRecordset(sqlMax)
    
        result = rs.Fields(0)
    
        MsgBox result
    
        Set rs = Nothing
    
        rs.Close
    End Sub