Originally posted by NeoPa
Debug.Print
after I get it wo work....
Debug.Print
after I get it wo work....
WHERE
clause, the more I rely on using Replace()
rather than appending various string literals to other values to make up a long and complicated string. Actually, I even have a special Function called MultiReplace()
that I use to handle multiple replacement values.strSQL = "SELECT *" & VbNewLine & "FROM [tblTransaction]" & VbNewLine _ & "WHERE ([TranDate]=#" & Format(datTran, "yyyy\-m\-d") & "#)" _ & VbNewLine & " AND ([ClientID]='" & strClientID & "')" & VbNewLine _ & " AND ([OperatorID]=" & lngOperatorID & ")"
strSQL = MultiReplace("SELECT *%L" _ & "FROM [tblTransaction]%L" _ & "WHERE ([TranDate]=#%D#)%L" _ & " AND ([ClientID]='%C')%L" _ & " AND ([OperatorID]=%O)" _ , "%D", Format(datTran, "yyyy\-m-\d") _ , "%C", strClientID _ , "%O", lngOperatorID _ , "%L", VbNewLine)
MultiReplace()
is included here for fullness.'MultiReplace() takes each pair of parameters from avarArgs() and replaces the ' first with the second wherever found in strMain. 'Using VbBinaryCompare means that case is recognised and not ignored. '08/05/2013 Updated to support passing of an array directly into avarArgs. Public Function MultiReplace(ByRef strMain As String _ , ParamArray avarArgs() As Variant) As String Dim intX As Integer Dim avarVals() As Variant 'Code to handle avarArgs passed as an existing array. If (UBound(avarArgs) = LBound(avarArgs)) _ And IsArray(avarArgs(LBound(avarArgs))) Then ReDim avarVals(LBound(avarArgs) To UBound(avarArgs(LBound(avarArgs)))) For intX = LBound(avarVals) To UBound(avarVals) avarVals(intX) = avarArgs(LBound(avarArgs))(intX) Next intX Else avarVals = avarArgs End If If (UBound(avarVals) - LBound(avarVals)) Mod 2 = 0 Then Stop MultiReplace = strMain For intX = LBound(avarVals) To UBound(avarVals) Step 2 MultiReplace = Replace(Expression:=MultiReplace, _ Find:=Nz(avarVals(intX), ""), _ Replace:=Nz(avarVals(intX + 1), ""), _ Compare:=vbBinaryCompare) Next intX End Function
"IN (" & strMYs & ") " & _ "GROUP BY join_ParttoTag.PartID " & _ "HAVING (Count(join_ParttoTag.PartID)=" & intX & ")) AS Cat2 " & _
Comment