MSアクセスおよび/またはExcel関数と同等のアクセス権
こんにちは、
私は商品コードの表(数字)と同等の商品カテゴリ(テキスト)を持つMS Accessデータベースを持っています.(例えば、111=「キャップ」)
別の表には、製品コードを使用したSKUによる製品のリストが含まれています.(例えば、SKU7070「ブルーキャップ」= 111)
2つを組み合わせるためのクエリを使用し、数字ではなく各SKUのカテゴリを表示します.
カテゴリのインスタンスが同じコードに1つあります.111=キャップと111= hat.ただし、製品コードはキーフィールドであるため、2つのレコードがありませんので、アクセスは111のキャップのみを見るだけです.残念ながら、帽子のコードは変更できません.
私はそれらを修正することができるように、適切なコードを持っていない製品のデータベース内で調べられるクエリを書く必要があります.私はこの1つの組み合わせでスナッグを打ちました.すべてのhatはアップデートのためにフラグが立てられます.
MS Excelには、複数の基準を指定できる機能と機能があります.等価なMSアクセス機能はありますか?
私が試したのは:iif(雑誌(または(商品カテゴリ]= "cap"、[製品カテゴリ]= "hat")、[製品コード]= 111)、 "OK"、 "FIX"))) )
私は無効な構文で表現があるというエラー対話を受けます.
帽子を誤って表示するのを誤って排除する方法は、それでもレコードに111以外のコードがある場合はフラグが立てられますか?私は "&"を使ってみましたが、それはどちらもうまくいきませんでした.
あらゆる助け/提案が大いに感謝されています.私はMS Office 2013を使っています.
返信リスト(回答:2)
アクセスは「ExcelonSteroids」ではありません.ストレージとロジックがまったく異なります.(この場合のように)Excelの手法を適用することは、フラストレーションの練習になります!
とはいえ、AccessはANDおよびORロジックを実行しますが、実際にはExcelよりもIMOの方が優れています.このクエリを試してください(コピーして新しいクエリのSQLwindows に貼り付けてください):
SELECT* FROM yourtable WHERE [Product Code]<>111 AND [Product Category] IN( "Hat"、 "Cap")
ただし、実際の解決策は、tableを正しく正規化することです.[商品カテゴリ]の値が[商品コード]に依存する場合は、商品コードを主キーとして持つProductCodestableが必要です.なしの製品コード
SKUtableのカテゴリ.クエリを使用してProductCodestableにリンクし、111がどうあるべきかを調べます.スプレッドシートではなく、リレーショナルデータベースを使用しています.このように使用すると、生活がはるかに楽になります!
応答2# ->にスキップ1 #lochnez洞察に感謝します.私は90年代初頭から両方で機能してきた違いを完全に理解していますが、私の問題を誤解している可能性があります.IIF式は、複数のリンクされたtableを使用するクエリの一部であり、式ビルダーを使用して作成されます クエリGUIの
.したがって、これはスタンドアロンのSELECTステートメントではなく、より大きなステートメントの一部です.ステートメントロジックを式に適用しようとしましたが、まだ成功していません.しかし、私は挑戦し続けます.
My Accessデータベースの「table」は、ほとんどがリンクされたExcelスプレッドシートであり、独自のクエリエンジンを使用してERPシステムからエクスポートされたものです.正規化はオプションかもしれません.2つのERPSKUtableをリンクする製品コードtableを作成しました.そのうちの1つは
にはSKU-Categoryがあり、もう1つにはSKU-Codeがあります.コードでカテゴリを定義するERPtableをまだ見つけていません.tableのキーフィールドとしてコードを使用することは選択であり、要件ではありませんでした.このtableには、コードとカテゴリの2つのフィールドがあります.tableに次のように入力しました
エクスポートからコードとカテゴリの可能なすべての組み合わせを抽出します.キーフィールドを使用することで、2つのカテゴリでコードを共有できなくなります.両方のフィールドをキーとして定義することもできません.キーフィールドがないと、さらに悪い問題が発生します.もう一度、ありがとう.プラグを抜いていきます!