2009-10-22 2 views
0

where 절에 사용할 열을 결정하기 위해 콤보 상자를 읽을 수 있어야합니다. 간단한 예는 테이블에서 SELECT *을 것 WHERE [양식]! [frmNameWhatever]! [ComboTime] BETWEEN [ㅋ]! [ㅋ]! [ㅋ] 및 [ㅋ]! [ㅋ]! [ㅋ]MS ACCESS WHERE 절을 빌드하는 데 사용하는 쿼리

예를 들어, 바로 뒤에, 0 행을 반환 ... 잘못된 구문을 사용하고 있습니까? 텍스트 상자에도이 텍스트를 입력했는데 여전히 0 행을 반환합니다 ... 죄송합니다. 누군가 다시 작성해야하지만 피곤합니다.

고마워요. 어떤 도움을 ^^

+0

ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ는 무엇을 상징 하는가? 귀하의 양식에 더 많은 컨트롤이 있습니까? –

+0

예, 이것을 편집하겠습니다. 그러나, blah! blah! blah는 WHERE 키워드 바로 뒤에 "동적"일 필요가있는 부분이었습니다. 나는 가능한 접근에서 콤보 박스 내에서 선택된 것에 의존하는 것으로 이것을 변경하려고합니다. – Marlon

답변

1

BETWEEN 값 주위에 파운드 기호를 넣어보십시오.

BETWEEN #8:00 AM# and #12:00 PM# 

는 동적 SQL 문자열을 만들려면 :

strSQL = _ 
    "Select myColumns FROM myTable WHERE " & Me.myComboBox & " BETWEEN #" & _ 
    Me.MyFirstTextBoxDate & "# AND #" & Me.MySecondTextBoxDate & "#" 
+0

사이의 값은 완벽하게 작동합니다. 그러나 WHERE 키워드 바로 다음에 "동적"이어야합니다. 내가 가능한 액세스 가능한 경우 콤보 상자 내에서 선택된 항목에 의존하는 것으로 변경하려고합니다. – Marlon

+0

@marloncopeland, 편집 된 답변보기. –

+0

나는 이것을 시험해 볼 것이지만, 내 문제를 오해하고 있다는 느낌이 들게된다. 귀하의 예를 들어, "myDateColumn"콤보 상자의 값에서 오는 값이 필요합니다, 콤보 상자의 값을 테이블의 열을 말할 것입니다. 그래서, 어디에서 [comboxboxvalue] BETWEEN [textboxdate] AND [textboxdate] – Marlon

0

그것은 당신의 SQL 코드 내 하드 코드하여 폼의 컨트롤 이름에 대한 좋은 생각이되지 않을 수 있습니다. 예를 들어 강력 유형 매개 변수가있는 PROCEDURE을 고려하십시오. ANSI-92 Query Mode 구문 :

CREATE PROCEDURE GetOrdersByPeriod 
(
:start_date DATETIME, 
:end_date DATETIME 
) 
AS 
SELECT OrderID, CustomerID, OrderDate 
    FROM Orders 
WHERE OrderDate BETWEEN :start_date AND :end_date; 

당신 매개 변수로 제어 '값을 전달하여이 PROC 다음 EXECUTE 것.

+0

내 문제는 WHERE 키워드 바로 뒤에있는 "항목"(예 : OrderDate)이며 "동적"이어야합니다. Access에서 가능한지, 콤보 상자 내에서 선택된 항목에 의존하는 것으로 변경하려고하는지 알고 싶습니다. – Marlon

+0

그래서 여러 개의 procs - GetOrderByOrderDate, GetOrderByRequiredDate, GetOrderByShippedDate 등 - 그럼 콤보 상자의 값을 ' 동적으로 '필요한 proc을 선택하십시오. – onedaywhen

1

당신은 SQL 문을 연결하고과 같이 RUNSQL 그것을 실행할 수 있습니다!

DoCmd.RunSQL("(SELECT * FROM TABLE WHERE " & Forms("frmNameWhatever").ComboTime.Value & " BETWEEN [blah]![blah]![blah] AND [blah]![blah]![blah]);") 
관련 문제