2011-03-04 14 views
1

msアクセス2007データベースクエリで変数を宣言して設定します。 2つのデータベースクエリ結果を、実行後に整数型または文字列型であるため、2つの変数に格納します。私は変数を宣言して設定する方法を知りたいですか?msアクセス2007クエリで変数を宣言して設定する方法

SQLサーバーと同等のジェット/ ACE SQLでこの構文はサポートされていません。この

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

答えて

2

ようなものになるだろう。最終的な目標が何であるかに応じて、このタイプの機能には、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の値の行を取得していること:値を取得するクエリは、次のようになります。それが保証されていなかった場合は、取得するので、のような1行を返すことが保証外のクエリを使用するとよいでしょう:

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

クエリの定義としてこれを保存して、あなたのメインクエリでそれを使用します。

関連する問題