システムwiki

MSアクセスおよび/またはExcel関数と同等のアクセス権

lochnez 受付中 最終更新日:2021-05-02 02:36

こんにちは、

私は商品コードの表(数字)と同等の商品カテゴリ(テキスト)を持つ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)

2 #
JohnW.V

アクセスは「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つのカテゴリでコードを共有できなくなります.両方のフィールドをキーとして定義することもできません.キーフィールドがないと、さらに悪い問題が発生します.

もう一度、ありがとう.プラグを抜いていきます!