2016-06-29 7 views
1

私はフォームからデータをクエリに取得するにはどうすればよいですか?

フォーム場合は、クエリを実行したい!

、別のクエリを実行txtLanguageInd = "スペイン語" ここでは、そのこと

は私のSQLクエリ

IIf(Forms!HiddenUserCheck!txtLanguageInd = "Spanish", 
(SELECT UserList.Clerkid, IIf([LastName]=" Smith",[LastName] & [FirstName],[FirstName] & " " & [LastName]) AS FullName, UserList.Status, UserList.ActiveToday 
FROM UserList 
WHERE (((UserList.Status)="Clerk") AND ((UserList.ActiveToday)=True)) OR (((UserList.Status)="Drug Court") AND ((UserList.ActiveToday)=True)) AND SpanishPrompt=True 
ORDER BY IIf([LastName]=" Smith",[LastName] & [FirstName],[LastName] & ", " & [FirstName]);), 
(SELECT UserList.Clerkid, IIf([LastName]=" Smith",[LastName] & [FirstName],[FirstName] & " " & [LastName]) AS FullName, UserList.Status, UserList.ActiveToday 
FROM UserList 
WHERE (((UserList.Status)="Clerk") AND ((UserList.ActiveToday)=True)) OR (((UserList.Status)="Drug Court") AND ((UserList.ActiveToday)=True)) AND SpanishPrompt=False 
ORDER BY IIf([LastName]=" Smith",[LastName] & [FirstName],[LastName] & ", " & [FirstName]);)) 
+0

あなたのクエリをしようと、エラーはありますか? – BJones

+0

無効なSQL文です。 DELETE INSERT PROCEDURE SELECTまたはUPDATEを挿入します。基本的には、フォームの値をチェックしてクエリを実行する前にスペイン語であるかどうか確認したい –

+0

最初に「SELECT」を追加しましたか?例えば'SELECT IIF ...'?それはもう一つのことです。あなたは 'IIF'ではなく' Iff'を持っています – BJones

答えて

2

であれば、私はあなただと思います問題は実質的です...

IIF(SomeVariable=1,(Execute one statement),(Execute another statment)) 

あなたが条件式の条件と処理の概念を混合されているとして使用することはできません...あなたがあなたの文の両方の最後に置かれているセミコロンは、この明確に...

を示しています

エラーが同じに複数のフィールドの点を返し。あなたの2つのステートメントがただ1つのスカラー値を返すならば、これはうまくいくかもしれませんが、確かに!ない多くのフィールドを返す完全な声明...

+0

が、これは*純粋なMS-アクセス*ですまたは別のRDBMSには関与バックエンドとしてあるのでしょうか?最も一般的なのは、特に両方の 'SELECT'が同じ列の集合を返す場合、両方のステートメントに適切な' WHERE'節を持つ 'UNION ALL'です。あなたは、動的SQLや何らかのVBA /プロシージャーについて考えるかもしれません... –

+0

@softwareisfunをtxtLanguageIndどのように私は、フォームの値に基づいて実行するためのクエリを取得することができます! – Shnugo

+0

これは純粋なアクセスです。 (データベースは分割されていて、まだACCDBファイルです) –

1

であなただけのWHERE句に条件を入れて、すべてでこの外側IIfは必要ありません。

これは、あなたが欲しいものを行う必要がありますが、あなたは、ORの優先順位を確認する必要がありますとAND WHERE句で、あなたはおそらく2つのOR条件の周りの括弧の別のセットをしたいです。

SELECT UserList.Clerkid, IIf([LastName]=" Smith",[LastName] & [FirstName],[FirstName] & " " & [LastName]) AS FullName, 
     UserList.Status, UserList.ActiveToday 
FROM UserList 

WHERE ((UserList.Status="Clerk") AND (UserList.ActiveToday=True)) 
    OR ((UserList.Status="Drug Court") AND (UserList.ActiveToday=True)) 
    AND SpanishPrompt=(Forms!HiddenUserCheck!txtLanguageInd = "Spanish") 

ORDER BY IIf([LastName]=" Smith",[LastName] & [FirstName],[LastName] & ", " & [FirstName]); 
関連する問題