- ベストアンサー
Access2013のIIF関数等について
- Access2013のIIF関数を使用してExcelのIF関数と同様の動作を行う方法について質問します。
- ExcelではIF関数を使用してデータ整理を行っていたが、データ量がExcelの制限を超えたため、AccessのIIF関数を使用して同様の動作が可能かどうか知りたい。
- 具体的なデータ例を示し、数値の条件に基づいて解答を返す方法を教えていただければ幸いです。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> テーブルに対する規則は現在使用されているので、変更できません エラーの説明では このテーブルのレコードは、ほかのユーザーによって変更されているか、またはアプリケーションの別のセッションで変更しているため、現在ロックされています。テーブルのレコードがロックされている間は、そのテーブルの規則は変更できません。 別のセッションでレコードをロックしている場合は、レコードを保存してから変更を行ってください。ほかのユーザーがレコードをロックしている場合は、しばらく待ってから規則の変更を保存してください。 ↑という事みたいですので上記に合致しないか確認してみてください。 > クエリには出力フィールドが1つ以上必要です こちらは クエリを作成する場合に、デスティネーション フィールド名 (出力するフィールド名) を指定しませんでした。少なくとも 1 つまたは複数のデスティネーション フィールドを選択してください。 ↑という事みたいですので上記に合致しないか確認してみてください。 念のためにこちらで設定している画像を添付しておきます。
その他の回答 (6)
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
・可能です。 自分は次の2通りのどちらかでやっています ・クエリにIIF関数を組み込む ・VBAで If文で処理 VBAだとIf文の他に Select Case 文もあり複数評価も可能です もしかしてマクロでも可能かも
お礼
ご回答ありがとうございます。 私はVBAを使用できませんので、kkkkkm様の情報とともに「・クエリにIIF関数を組み込む」方法にてチャレンジさせていただきました。 その結果無事にデータをことができました。 また、今回の件で皆様にご回答いただきまして、Accessの可能性の広さを強く感じることができたと思います。 本当にありがとうございました!
- kkkkkm
- ベストアンサー率66% (1732/2602)
知らなかったのですが2010以降だとテーブルにデータ型「集計」がありました。 ただ式で""が使えないみたいでしたので 空欄のフィールド(たとえばtest)を作成して IIf([数値1]<[検索値],IIf([検索値]<[数値2],[数値3],[test]),[test]) テーブルのデータ型に【集計】が追加された!集計フィールドが作成できる https://hamachan.info/win7/Access/data.html
補足
ご回答ありがとうございます。 ご教授いただきました方法を順に試してみました。 (1)更新クエリを用いる方法 レコードの更新の欄に「IIf([数値1]<[検索値],IIf([検索値]<[数値2],[数値3],""),"")」を入力してみましたが、「クエリには出力フィールドが1つ以上必要です。」のエラーが出現し、できませんでした。 (2)テーブルのデータ型の集計を使用する方法 フィールドになにもデータの無い testを作成し、教えていただいた「IIf([数値1]<[検索値],IIf([検索値]<[数値2],[数値3],[test]),[test])」を、式の要素を関数に選択してからボックスに入れたところ、「このテーブルに対する規則は現在使用されているので、変更できません」のエラーボックスが出現し、できませんでした。 いずれも試させていただきましたが、私の式の入れる場所が悪いのか、私の操作方法が悪いのか、上記のエラーが出現し、作成できませんでした。 もし、なにか解決策がありそうでしたら、ご教授いただければ幸いです。 何卒よろしくお願い申し上げます。
- kkkkkm
- ベストアンサー率66% (1732/2602)
解答フィールドに結果を出力したい場合は 更新クエリを利用してください。式は同じです。 Accessで更新クエリを作成する方法 https://dekiru.net/article/15120/
- kkkkkm
- ベストアンサー率66% (1732/2602)
最後が抜けてました。 解答: IIf([数値1]<[検索値],IIf([検索値]<[数値2],[数値3],""),"")
- kkkkkm
- ベストアンサー率66% (1732/2602)
たとえば選択クエリで 解答: IIf([数値1]<[検索値],IIf([検索値]<[数値2],[数値3],"")) とかでいけると思います。
お礼
色々と教えていただきありがとうございます。 添付していただいた画像を見て、ピンときまして、Accessで試したところ 無事に作りたかったデータを作ることができました。 拙い状況説明の中、ご教授いただきありがとうございました!