2011-03-04 3 views
1

ms 액세스 2007 데이터베이스 쿼리에서 변수를 선언하고 설정하려고합니다. 실행 후 정수 또는 문자열 유형이므로 2 개의 데이터베이스 쿼리 결과를 2 개의 변수에 저장하려고합니다. 변수를 선언하고 설정하는 방법을 알고 싶습니다.ms 액세스 2007 쿼리에서 변수를 선언하고 설정하는 방법

SQL 서버 상당이

declare @var1 varchar(50) 
set @var1 = 'select * from table' 

답변

2

같은 제트/ACE SQL에서이 구문를 지원하지 않습니다 것입니다. 최종 목표가 무엇인지에 따라 이러한 유형의 기능을 위해 VBA (아래 제공된 샘플) 또는 하위 쿼리 (@ Thomas의 솔루션 에서처럼) 중 하나를 사용해야합니다. (Allen Browne's website에서 적응) 다음과 같은 라인을 따라

뭔가 : "쿼리에"당신이 다음이 까다 롭습니다 "고 VBA 루틴에 의지하지 않고"을 의미하여

Function DAORecordsetExample() 
    'Purpose: How to open a recordset and loop through the records.' 
    'Note:  Requires a table named MyTable, with a field named MyField.' 
    Dim rs As DAO.Recordset 
    Dim strSql As String 

    strSql = "SELECT MyField FROM MyTable;" 
    Set rs = CurrentDb.OpenRecordset(strSql) 

    Do While Not rs.EOF 
     Debug.Print rs!MyField 
     rs.MoveNext 
    Loop 

    rs.Close 
    Set rs = Nothing 
End Function 
2

합니다. 가장 간단한 솔루션은 기본 쿼리에서 사용하는 단일 쿼리입니다.

Select SomeCol As Var1 
    , (Select SomeOtherCol 
     From SomeOtherTable) As Var2 
From SomeTable 

은 위의 서브 쿼리가 하나의 행을 반환한다고 가정하고 우리가 VAR1의 가치에 대한 행을 얻을 : 값을 가져옵니다 쿼리처럼 보일 수 있습니다. 이 보장되지 않은 경우, 당신은 얻을과 같이 하나 개의 행을 반환 보장 외부 쿼리를 사용하고자하는 것 :

Select (Select SomeCol 
      From SomeTable) As Var1 
    , (Select SomeOtherCol 
     From SomeOtherTable) As Var2 
From AnotherTableWithAtLeastOneRow 
Where Col = "SomeValueToGetOneRow" 

당신은 쿼리 정의로 그것을 저장 한 다음 메인 쿼리를 사용할 수 있습니다.

관련 문제