2014-05-13 2 views
1

에서 매개 변수 inequal 연산자를 전달하는 내가 액세스 호출 "1PreviousEWBS"의 아래에 저장된 조회 한 방법 : 사용자가 데이터를 선택하는 콤보 상자를 사용할 수 있도록 SQL 액세스 VBA

SELECT f.ewbs AS EWBS, SUM(f.[total hours]) AS [Total Hours], SUM(f.[total cost]) AS [Total Cost],         T.description AS Activity, T.AWBS AS AWBS 
FROM FindHrCostByEWBS AS f, AllProjectsCodes AS T 
WHERE (f.project)=Forms!x!cboProjects 
And f.[period end date]<Forms!x!cboDate  
And f.ewbs=T.oldewbs  
GROUP BY f.ewbs,T.description, T.AWBS; 

가 Bascially 내가 이것을 썼다.

하지만 지금은 VBA를 통해 매개 변수를 직접 설정할 수 있는지 궁금합니다. 나는이 같은 것을 준비했다. .

Sub TestSeePreviousData 

    Dim rS As DAO.Recordset 
    Dim db As DAO.Database 
    Dim queryDef As DAO.queryDef 

    Dim ProjectNumber As String 
    Dim FiscalDate As Date 
    FiscalDate = #4/25/2014# 

    Set db = CurrentDb 
    Set queryDef = db.QueryDefs("1PreviousEWBS") 

    'Parameter 0 is to input the Project number 
    queryDef.Parameters(0) = "173221" 
    'Parameter 1 is to give the fiscal period end date 
    queryDef.Parameters(1) = "'" & FiscalDate & " 


    Set rS = queryDef.OpenRecordset 

    Do While Not rS.EOF 
     'The lines for 1PreviousEWBS 
     Debug.Print rS.Fields("EWBS") & vbTab & rS.Fields("AWBS") & vbTab & rS.Fields("Total Hours") & vbTab &  rS.Fields("Total Cost") 


     rS.MoveNext 
    Loop 


End Sub 

내 문제는 내가, 즉

F [기간 종료일] < [입력 날짜] 초기 "보다"상태를 재현하고자하며,이 :

된 QueryDef. 매개 변수 (1) < " '"& FiscalDate & "'"

이 작동하지 않습니다, 그것은 "속성의 잘못된 사용"

의 오류 메시지를 반환

내 질문에, 어떻게 내가 VBA에 SQL에 대한 매개 변수를 설정할 때 불평등 조건을 보여줄 수 있습니까?

답변

1

저는 비교 연산자가 QueryDef SQL에 하드 코딩되어야하며, 실행 날짜에 설정해야하는 회계 날짜를 나타내는 Parameter 만 있다고 믿습니다. 너 그거 해봤 니?

귀하의 검색어 1PreviousEWBS가 나와있는 똑같은 SQL을 사용하고 있지만 양식 참조 (Forms! x! cboDate)를 표준 매개 변수 참조 - [pFiscalDate]로 변경하면 확실하지 않습니다.

런타임에 [pFiscalDate]를 바꾸려면 코드가 나타나야하고 <은 QueryDef 코드의 일부 여야합니다.

+0

안녕하세요 @ user3618839 문제는 "DIM FiscalDate as Date"로 내려갈 것입니다. 나는 # 4/25/2014 #로 설정하고 나중에 '# 4/25/2014 #'로 설정하면 변환 문제가 있다고 생각합니다. – Eddy

+0

귀하의 요점은, 내가 무엇을 이해하지 않는 경우, 쿼리 def 이미 매개 변수 요구 사항에 하드 코드 된 있습니다. 즉. f. [기간 종료일] Eddy

+0

안녕하세요. 솔직히 말해서 첫 번째 의견을 이해하지 못합니다. FiscalDate의 날짜 지정이나 # 4/25/2014 #의 설정에 문제가없는 것 같습니다. 의심 스럽다면, 그 후에 모든 것을 주석 처리하고 실행하십시오. 나는 그것이 깨지지 않을 것이라고 확신한다. 두 번째 질문에 – VBlades