在表中的har字段中,我只是询问表单中使用的“string”变量,在vba中)您在尝试构建这些长字符串时是否收到错误消息?如果是这样的话,那是什么消息?你做过类似于Debug.Print Len(strReq)的事情吗?我知道我不使用太多的换行符,它大约是

在表中的har字段中,我只是询问表单中使用的“string”变量,在vba中)您在尝试构建这些长字符串时是否收到错误消息?如果是这样的话,那是什么消息?你做过类似于Debug.Print Len(strReq)的事情吗?我知道我不使用太多的换行符,它大约是,string,ms-access,vba,string-length,String,Ms Access,Vba,String Length,在表中的har字段中,我只是询问表单中使用的“string”变量,在vba中)您在尝试构建这些长字符串时是否收到错误消息?如果是这样的话,那是什么消息?你做过类似于Debug.Print Len(strReq)的事情吗?我知道我不使用太多的换行符,它大约是100个字符的5行换行符。汇编从未警告过我“续行太多”。我可以查看我的代码,精确地给出我正在进行的连接的数量以及每行的长度。即使我不确定它是否非常相关(5-10个100个字符的串联)也能很好地总结它。我要试试别的,也许每一个“cstrSegme


在表中的har字段中,我只是询问表单中使用的“string”变量,在vba中)您在尝试构建这些长字符串时是否收到错误消息?如果是这样的话,那是什么消息?你做过类似于
Debug.Print Len(strReq)
的事情吗?我知道我不使用太多的换行符,它大约是100个字符的5行换行符。汇编从未警告过我“续行太多”。我可以查看我的代码,精确地给出我正在进行的连接的数量以及每行的长度。即使我不确定它是否非常相关(5-10个100个字符的串联)也能很好地总结它。我要试试别的,也许每一个“cstrSegment”实际上不能超过256个字符。我不确定,我会测试一下。好的,我的答案是推测性的。我认为这将有助于向我们展示一段导致您试图解决的问题的确切代码。没有一行实际破坏了110个字符,所以这不是因为一行超过256个字符。。。然而,可能是“&_”使它看起来像一个字符串(因此它会破坏255),并且,再次,可能这是造成麻烦的原因。。。或者它不是^^,因为vba的调试不显示完整的字符串,而只显示第一个字符。我很难真正测试所有这些。。。有人知道access为什么这么做吗?(以及它与srtings的实际工作原理)——————我会被诅咒的。。。它看起来很管用,现在。。。我只需要向其他人展示它,让虫子像往常一样消失:/。。。所以如果我找到了为什么它现在不做,为什么以前做过,我会把它贴在这里。(我想这是因为我输入了[element].controlSource(这是一个弹出列表的查询)
Dim strReq as String
strReq = "SELECT exampleField1, exampleField2, exampleField3, exampleField4, exampleField5 "
strReq = strRec & ", exampleField6, exampleField7, exampleField8, .... [etc. insert many fields, you get it]"

strReq = strReq & " FROM myTable INNER JOIN Tbl2 ON ...[many JOINs as well]"
Dim strReq as String
strReq = "SELECT exampleField1, exampleField2, exampleField3, exampleField4, exampleField5 " & _
", exampleField6, exampleField7, exampleField8, .... [etc. insert many fields, you get it]" & _
" WHERE exampleField1 = x AND  exampleField2 = y AND  exampleField3 = z" & _
" ORDER BY 1,2,3,4,5,6"
Dim strReq as String
Dim strWhere as String
strReq = "SELECT exampleField1, exampleField2, exampleField3, exampleField4, exampleField5 "
strReq = strRec & ", exampleField6, exampleField7, exampleField8, .... [etc. insert many fields, you get it]"
strWhere = "WHERE exampleField1 = x "
strWhere = strWhere & "AND  exampleField2 = y"
strWhere= strWhere & " AND  exampleField3 = z"

strReq = strReq & strWhere [& strJoin / strOrder / strHaving / etc]
        strReq = "SELECT " & IIf(Len(rsRap.Fields("top")) > 0, " TOP " & rsRap.Fields("top"), "") & " " & rsRap.Fields("champs") & ", Sum([Canada]*[Quantité]) AS Montant, Sum(TblDetailCom.Quantité) AS Qty " & IIf(Len(rsRap.Fields("rep")) > 0, ", NickName", "")

        strReq = strReq & " FROM (SELECT * FROM TblRepresentant WHERE RefRep not In(13,15,26,27,28)) AS TblRepresentant INNER JOIN "
        strReq = strReq & " ((TblProduits LEFT JOIN TblTypBijoux ON TblProduits.Type = TblTypBijoux.IdTypBijoux) "
        strReq = strReq & " INNER JOIN (TblCouleur INNER JOIN ((TblClients INNER JOIN ((TblComm LEFT JOIN RqMaxIdTrait ON TblComm.ID = RqMaxIdTrait.IdCommande) "
        strReq = strReq & " LEFT JOIN TblTraitement ON RqMaxIdTrait.MaxOfIdTrait = TblTraitement.IdTrait) ON TblClients.ID = TblComm.RefClient) "
        strReq = strReq & " INNER JOIN TblDetailCom ON TblComm.ID = TblDetailCom.RefCom) ON TblCouleur.ID = TblDetailCom.RefCoul) "
        strReq = strReq & " ON TblProduits.IdMod = TblDetailCom.RefProd) ON TblRepresentant.RefRep = TblClients.RefRepre "

        strReq = strReq & " WHERE (TblClients.RefRepre <> 5 OR (TblClients.RefRepre=5 AND TblClients.ID In (1210,219,189,578))) "
        '(((TblProduits.Coll)=16) AND((TblComm.CoDatCom)>=#2011-01-01# And (TblComm.CoDatCom)<=#2014-01-01#) " 'Params Collection (16) DteDeb/fin
        'strReq = strReq & " AND "
        If Len(rsRap.Fields("type")) > 0 Then
         strReq = strReq & " AND TblProduits.[Type] = " & rsRap.Fields("type")
        End If

        If Len(txtDe) > 0 Then
           strReq = strReq & " AND TblTraitement.DtTrait >= #" & txtDe & "# "
        End If

        If Len(txtA) > 0 Then
           strReq = strReq & " AND TblTraitement.DtTrait <= #" & txtA & "# "
        End If


        If Len(rsRap.Fields("pays")) > 0 Then
           strReq = strReq & " AND TblClients.ClPaiePays = '" & rsRap.Fields("pays") & "' "
        End If
        If Len(rsRap.Fields("rep")) > 0 Then
           strReq = strReq & " AND TblClients.RefRepre = " & rsRap.Fields("rep")
        End If

        If Len(rsRap.Fields("col")) > 0 Then
         strReq = strReq & " AND TblProduits.Coll=" & rsRap.Fields("col")
        End If



        If Len(rsRap.Fields("group")) > 0 Then
            strReq = strReq & " GROUP BY " & rsRap.Fields("group") & IIf(Len(rsRap.Fields("rep")) > 0, ", NickName", "")
        End If

        strReq = strReq & " HAVING Sum([Canada]*[Quantité]) >= 0 "

        If Len(rsRap.Fields("order")) > 0 Then
            strReq = strReq & " ORDER BY " & rsRap.Fields("order")
        End If
strSQL = strSQL & "SELECT some fields " & vbcrlf & "FROM some table "