2012-10-30 2 views
2

코드의 strSql 부분에서 변수 (j)를 변경해야하는 VBA에서 루프를 만들었습니다. Excel 시트의 내 출력 열은 모두 내재적입니다. 이는 strsql 문자열에서 변수 j가 변경되지 않는다는 것을 의미합니다. 아무도이 경우에 적절한 변화 변수를 사용하는 방법을 알고 있습니까? 미리 감사드립니다VBA mysql 쿼리에서 변수를 루프로 변경 하시겠습니까?

설정 RS = 새 ADODB.Recordset

 For j = 1 To 6 


    strSql = "SELECT COUNT(*) FROM(" & _ 
    "SELECT COUNT(*) as nbp FROM `order` " & _ 
    "JOIN user ON user.id = order.destination_id " & _ 
    "AND DATEDIFF(date_added , register_date) <= j" & _ 
    "GROUP BY destination_id) c " & _ 
    "GROUP BY nbp " & _ 
    "ORDER BY c.nbp ASC ; " 



    rs.Open strSql, oConn, adOpenDynamic, adLockPessimistic 

    res = rs.GetRows 

    rs.Close 

    For i = 1 To 2 
    Cells(i, j) = res(0, i - 1) 
    Next i 
    Next j 

답변

4

당신은

register_date) < = J "&

에 당신의 문자열에서 J를 이동해야 register_date) < = "&j &

+0

을 당신은 necesarly 문자열로 J를 변환 할 필요가 없습니다하지만 오히려 명시 나는 노력이 있지만, 오류 메시지가 계속 나타납니다. ODCB 드라이버는 요청 된 속성을 지원하지 않습니다. 그러나 무엇입니까 – user1783504

+1

어디서/오류 메시지가 무엇입니까? –

+0

ODCB 드라이버가 요청한 속성을 지원하지 않습니다. – user1783504

2

오히려 불쾌한하지만 ADO와 VBA에서 나는이 빠른 해킹 것 같다 ... ...

strSql = "SELECT COUNT(*) FROM(" & _ 
    "SELECT COUNT(*) as nbp FROM `order` " & _ 
    "JOIN user ON user.id = order.destination_id " & _ 
    "AND DATEDIFF(date_added , register_date) <= " & _ 
    CStr(j) & " " & _ 
    "GROUP BY destination_id) c " & _ 
    "GROUP BY nbp " & _ 
    "ORDER BY c.nbp ASC ; " 
+0

감사합니다. U 당신의 methos를 사용할 때 여전히 오류 메시지가 나타납니다 – user1783504

+0

또한 CSTR (J) 뒤에 공백이 있어야합니다. 그렇지 않으면 그룹을 인식 할 수 없습니다 ... CStr (j) & ""& _ " GROUP BY destination_id) c "& _ – Gage

관련 문제