システムwiki

材料記録-さまざまなサプライヤーからの価格-フィールドを望んでいる

debac82 受付中 最終更新日:2021-06-05 09:20

私の問題

Lotusアプローチで作成されたデータベースがあり、Microsoft Accessで再作成しようとしています.

私が持っている質問は次のとおりです.

-私は購入した各材料の記録を持っています

-このレコードでは、材料ID#、素材記述、およびその製品の価格を備えた複数のサプライヤのフィールドがあります.

私が好きなのは2つのフィールドです.

1)フィールド名:最高価格

-各サプライヤーフィールドを見て、その材料の最高価格を生成する

そして

2)フィールド名:

から購入

-各サプライヤーフィールドで終了しました-このフィールドのサプライヤの名前を生成するよりも最低価格があるかを参照してください-

EX:

サプライヤー#1:2.99

サプライヤー番号2:3.99

サプライヤー#3:4.99

購入する:「サプライヤー1」

これが可能かどうかまたはそうではないかどうかわからないか、助けが大いに感謝されるでしょう.

ありがとう、

MARC

返信リスト(回答:5)

4 #
KenSher

これは、table内の各行に別々の列(フィールド)を持っていることを示唆しています.もしそうであれば、この性質のデータがリレーショナルデータベースでどのようにモデル化されているかではなく、タスクをより困難にするでしょう.に
リレーショナル用語あなたが持っているものは、リレーションシップタイプの属性として価格がある、材料とサプライヤの間の多対数の関係型です.これをモデル化するには、幅広い概要のような関連エンティティタイプのそれぞれに対して1つずつ2つのtableから始めます.
これ:
材料
....MaterialID(PK)
....MaterialDescription
サプライヤー
....SupplierID(PK)
....Supplier
関係の種類は、2つの1対多の関係タイプに解決する3番目のtableによってモデル化されます. マテリアルプレッパー
....MaterialID(FK)
....SupplierID(FK)
....price
このtableの主キーは、2つの外部キー列の合成値です.購入する材料を選択している形式では、購入tableまたは類似のコンボボックスがMaterialID列にバインドされていることもあります.コンボボックスはあります
このように設定します 名前: cbomaterial
ControlSource:MaterialID
RowSource:MaterialID、MaterialsDescriptionからMaterialsDescriptionのSelect MaterialDescription.
バウンドカラム: 1
columncount: 2
columnwids:0cm
サプライヤに最も低い価格でサプライヤを表示するには、サプライヤのフォームに2つのバインドコンボボックスを追加し、価格の2つの束縛されたテキストボックスを追加します.2つのコンボボックスは上記のように設定されますが、名前が異なります.
そしてRowSourceのプロパティ:
CBomaterialのAfterUpdateイベント手順では、次の2つの他のコンボボックスに値を割り当てます.







通貨としての薄暗いCURLOWESTPRICE
通貨としての薄暗いCuryStprice
'選択した素材の最低で最高の価格を得る
CurlowEStPrice= DMIN(「価格」、「マテリアルアッププレイス」、「MaterialID=」&ME.CBomaterial
curhighestprice= dmax(「価格」、「マテリアルアッププレイス」、「MaterialID=」&me.cbomaterial
'選択した素材の最低で最高の価格でサプライヤーを入手する
lnglowestSupplier= dlookup( "SupplierId"、 "Materialsuppliers"、 "MaterialID="&_
ME.CBomaterial&「と価格=」&CurlowestPrice
LNGHIGHESTSUPPLIER= DLookup( "SupplierId"、 "Materialsuppliers"、 "MaterialID="&_
Me.cbomaterial&「と価格=」&CurlestPrice
'値をバインドされたコントロールに割り当てる
Me.CbolowestSupplier= lnglowestSupplier
me.cohighestSupplier= lnghighestsupplier
me.txtlowESTPRICE= CURLOWESTPRICE
me.txThighestprice= curhighestprice
サプライヤーを選択したい場合は、さらにバインドされたコンボボックスとバインドテキストボックスを追加し、上記のコードに次のコードに追加して、デフォルトの選択としてのコントロールに最低価格のサプライヤと価格を割り当てます.
Me.CBoseLectedSupplier= lnglowestSupplier
Me.txtSelectedPrice= curlowestprice
その後、CBoseLectedSupplierコンボボックスに別のサプライヤを選択して希望する場合は、デフォルトのサプライヤを上書きできるようになりました.CBoseLectedSupplierコンボボックスのAfterUpdateイベント手順では、次のコードを入力します.

'選択したサプライヤからバインドされたTXTSelectedPriceコントロールへの価格を割り当てる

Me.TxtSelectedPrice= Dlookup( "Price"、MaterietyUppliers "、" MaterialID= "&_
me.cbomaterial&"とsupplierid="&me.cboselectedSupplier

応答4# ->にスキップ
2 #
debac82

こんにちはケン、

返事をありがとうございました.

私が探している結果を生み出すためのいくつかの効率的な方法がおそらくいくつかの効率的な方法がある気持ちを持っていました.私はあなたが概説した方法を使ってすべてのものを再構築するようになります.残念ながら私は私の問題が私の問題があっても終わらない
これは変わる.笑

私は2000年に大学以来の中古のアクセスを持っていませんので、基本的にそれを再び回収しようとしています.私が持っている問題は、オリジナルのLotus Aprroachデータベースが私の叔父によって作成されたことです.彼は退職して渡してから今持っています
私へすべてのもの.それはまだ素晴らしい働きますが、私はマイクロソフトスイートへの交換によってより良い統合とサポートをしたいと思います.データベースには、IT内の複数のデータベース/フォーム/関係があります.

それで、私が自分自身をやっていることを見つけていることは、それを作成する最も効率的な方法を見つけようとするのではなく、近づいているものがここにどのようなものでコピーしようとしていることです.

私が最低価格を見つけて、名前を生成して保存しているのは、必要なものと入力された資料をまとめて店舗を生成して保存したいのです.費用
効果があります.
また、私のAppRiaChファイルは私が1つの製品のために持っているすべての価格を見て、それらの最高を持ち、私の充電価格としてそれを使用しています(私が一時的なカンミツまたは適切なサプライヤーの近くではない場合はこのようにしています.短い変化を変える)

私はすでに顧客データベースのテンプレートで始まり、私のニーズに合ったようにそれを味わえました.私は私の毎日の仕事の進行状況を記録することと一緒に請求書を生成するためにアプローチファイルを使用してください(作業説明/日/時間が働いています).
私が使ったすべての材料は私の材料費を追加します.今、既存のフォームを見ようとしているか、それでも使用され、それらを再作成し、他の人について忘れているのを見るために既存のフォームを見ようとしています.
私はあなたが私の古いアプローチファイルを再現する方法を提供する方法を提供することを望んでいるかもしれないアドバイスがあるかもしれません.

応答2# ->にスキップ
1 #
KenSher

最良のアプローチは、アクセスがインポートされたときにデータを正規化されたtableのセットに分解することです.これは可能ですが、アクセスコールの「アクションクエリ」を書くことに何らかの親しみやすさを必要とします.あなたはこれのイラストを見つけるでしょう
DecompoSerdemo.zip私のパブリックデータベースのフォルダにある:
https://onedrive.live.com/?cid=44cc60d7fea42912&id=44cc60d7fea42912年169.
この小さなデモファイルは、Excelワークシートからデータをインポートし、それをアクセス内の正規化されたtableのセットに分解します.ただし、デモでは、ワークシートのデータはやや異なる方法で構成されているため、クエリはかなり異なる方法で書かれなければなりません.
一方、あなたはあなたの現在の構造を保持しているならば、いくつかのVBA機能を書くことによって最も安価で最も高価な情報源を識別することが可能でしょう.基本的な方法論は、私が説明したものと同じですが、組み込みのDmaxを使用するのではなく、
DMINおよびDLOOKUP機能、カスタム関数は、最初に問題の資料の最低または最高の価格を識別し、その価格を請求するサプライヤー.
tableの正確な名前とその列(フィールド)を押し戻すことができれば、各列のデータ型とともに、必要なコードを十分に簡単に入手でき、小さなデータベースファイルをまとめることができます.それがどのように機能するかを示すために、
それから私のパブリックデータベースフォルダからonedriveにダウンロードすることができます.私はあなたがちょうどあなたにコードを与えるだけでなくあなたの歯を歩きやすくするのが簡単だと思います.
スレッドを見てみる可能性がある他の誰かの利益のためにそれをするでしょう.

5 #
TomvanS

私はあなたの将来のDMIN関数を見て、ヘルプファイルでそれをチェックアウトします

応答5# ->にスキップ
3 #
debac82

Tom、

ありがとう

その機能を調べます