2014-11-11 2 views
0

사용자 입력을 기반으로 쿼리를 만들 매크로를 작성하려고합니다. 사용자는 매크로 시작 부분에 날짜를 입력해야하며 매크로는 해당 날짜를 SQL 쿼리에 통합합니다. 문제는 SQL SELECT 문에 날짜를 통합하는 방법을 잘 모르겠습니다. 문자열 연결을 사용하려고 생각했지만 SQL 문에서 그렇게하는 방법을 모르겠습니다.Access VBA의 문자열 연결

Sub RevH() 
Dim dte As String, clientQry As String, db As Database, clientQry1 As Variant 


Set db = CurrentDb 


dte = InputBox("What date was the Data Dump run?", "Please Input a date") 


clientQry = "SELECT DISTINCT " & _ 
"FN_DataDump_ALL_11032014.[CLIENT ID], " & _ 
"FN_DataDump_ALL_11032014.[CLIENT NAME] " & _ 
"FROM " & _ 
"FN_DataDump_ALL_11032014 " & _ 
"WHERE (((FN_DataDump_ALL_11032014.[CLIENT NAME]) Not Like ""*Test*""));" 

clientQry1 = db.CreateQueryDef("NewIDs", clientQry) 
End Sub 
+0

http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/12/16/quick-tip -passing-date-and-time-variables-to-sql-server.aspx –

+0

죄송합니다. 질문에 언급하는 것을 잊어 버렸습니다. 'dte' 변수는 테이블 이름에서 11032014를 대체합니다. 그것을 할 방법이 있습니까? – user4095610

답변

2

당신이 테이블 별칭을 사용하는 경우가 훨씬 쉬울 것이다 :

dte = InputBox("What date was the Data Dump run?", "Please Input a date (MMDDYYYY)") 


clientQry = "SELECT DISTINCT t.[CLIENT ID], t.[CLIENT NAME] " & _ 
      "FROM FN_DataDump_ALL_" & dte & " as t WHERE " & _ 
      " (((t.[CLIENT NAME]) Not Like ""*Test*""));"