システムの統合について(Access2000)

このQ&Aのポイント
  • ABCという大元となっているOracleDBからデータ抽出や確認を行うためのシステムZZZ.mdb(Access2000)について統一化を考えている
  • ZZZ.mdbには販売店マスタ・商品マスタが存在し、似たシステムでZZZaa.mdb、ZZZxx.mdbがある
  • 商品マスタのデータが異なるため抽出条件が異なるが、良い統合方法について教示を求めている
回答を見る
  • ベストアンサー

システムの統合について(Access2000)

ABCという大元となっているOracleDB(ODBC接続している。) このDBからデータ抽出や確認を行うためのシステムZZZ.mdb(Access2000で作成したツール) ZZZ.mdbに登録されているマスタは、販売店マスタ・商品マスタがあります。 似たようなシステムでZZZaa.mdb、ZZZxx.mdbというシステムがあり、 統一したいと考えています。 (似たようなとしているのは、販売店マスタは共通だが商品マスタに違いがある為。) システム(ツール)でやっていることは、 ある一定期間ごとの商品の在庫等のデータをABCというDBから抽出してきて Excelに出力して確認できるようにしています。 今、問題となっているのは商品マスタに登録されているデータが異なるため、 DBから抽出する時の条件が異なるということです。(1つのシステムに付き条件は複数あり複雑) この為、システムを分けている(1つのシステムで完結出来ない。)と考えるのが一般的でしょうか? もし、良い方法がある方がいたらその方法もご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.2

この場合に問題になるのは商品マスタの更新だと思います。 商品マスタに違いがあるとはいえ、共通する商品もあるでしょう。 それが変わった場合、すべての商品マスタを差し替える必要があります。 それに、商品マスタの更新がうまくいかない、ユーザがやっていないなどがあれば、 新規商品が使用できない、古い商品が使用できるなどの問題がでます。 つまり、商品の改訂があった場合、すべてのシステムで商品改訂ができたか確認する必要があります。 一方、商品マスタをOracleで一元管理できていれば、システムごとの更新確認が不要になります。 Oracle内のの商品マスタの更新が確認できていればOKです。 こういった運用面での負荷から、個人的にはOracleで一元管理した方が良いと思います。 また、Accessは遅いので、Oracleでできる処理はOracleにまかせた方が処理速度の向上も見込めるかもしれません。 (とはいえ、処理速度の向上はあまり期待できないかもしれませんが) >この為、システムを分けている(1つのシステムで完結出来ない。)と考えるのが一般的でしょうか? 商品マスタの更新はない、あるいはあっても頻度が少ないので良しとする、 そういった考え方でシステムを作っている場合もあるでしょう。 また、システムを作成する期間や技術者、費用の面から商品マスタ一元管理の導入を見送った可能性もあります。 >もし、良い方法がある方がいたらその方法もご教示下さい。 業務ごとに商品が違うのであれば、その業務ではこの商品を使う、 といった情報が得られれば問題ないので、 業務-商品が対応した変換表を作るのが一番よさそうです。 作り方はいろいろあると思います。

n_c63amg
質問者

補足

ご回答有り難うございます。 マスタの違いについてですが、 取り扱っている商品のメーカー名や各メーカーによる種別コードが違います。 同じメーカーであっても抽出する条件が少しずつ違ったりします。 条件に加えるフィールドがメーカーAの種別コードAAにある(AB・ACもある。) 条件になっていても、メーカーBの種別コードBBでは同じ条件で 抽出できなかったりします。(欲しい結果が) メーカーや種別コードはCやDもありますし、 条件はバラバラです。 こんなシステムでも統一出来ますか?

その他の回答 (2)

  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.3

No2です。 >同じメーカーであっても抽出する条件が少しずつ違ったりします。 >条件に加えるフィールドがメーカーAの種別コードAAにある(AB・ACもある。) >条件になっていても、メーカーBの種別コードBBでは同じ条件で >抽出できなかったりします。(欲しい結果が) >メーカーや種別コードはCやDもありますし、 >条件はバラバラです。 商品と、メーカーと種別コードの関係性がちょっと分からないので補足をお願いします。 例えば、 商品1というのがあって、それが複数のメーカーが提供しており、 さらに種別コードも複数存在する。ということでしょうか? 商品 メーカー 種別コード 1      A     AA 1      A     AB 1      B     BB そして、システムごとに抽出するしないが違う、というような感じでしょうか?

noname#140971
noname#140971
回答No.1

プログラマではなく一介のデザイナですので、チト、外しているかも・・・。 問題は、データの量と集計方法じゃないでしょうか? 例えば、販売店の数と商品の総量が仮に10×1000程度でしたら・・・。 例えば、商品名をキーに集計しているのであれば・・・。 AAAA______|01_AAAAa___|02_AAAAb___|03_AAAAc__|・・・|10_AAAAc__| BBBB______|01_BBBBa___|02_BBBBb___|03_BBBBc__|・・・|10_BBBBc__| ・・・ ZZZZ______|01_ZZZZa___|02_ZZZZb___|03_ZZZZc__|・・・|10_ZZZZc__| このような1000行程度の換算表を作って対応する手もあります。 この場合、異名の存在は無視して[販売店コード+異名]で集計してしまいます。 その後、VBで作成した名寄せアプリケーションを起動します。 換算表は1行づつ読み込んで名寄せすればメモリの心配もないでしょう。 いずれにしろ、数千の名寄せであれば数秒で済むと思います。 そういうことで、最後に名寄せする方式はどうでしょうかね。

n_c63amg
質問者

補足

ご回答有り難うございます。 もし、ご存知でしたら教えて下さい。 マスタの違いについてですが、 取り扱っている商品のメーカー名や各メーカーによる種別コードが違います。 同じメーカーであっても抽出する条件が少しずつ違ったりします。 条件に加えるフィールドがメーカーAの種別コードAAにある(AB・ACもある。) 条件になっていても、メーカーBの種別コードBBでは同じ条件で 抽出できなかったりします。(欲しい結果が) メーカーや種別コードはCやDもありますし、 条件はバラバラです。 こんなシステムでも統一出来ますか?

関連するQ&A

  • Accessのシステム改修について

    DBシステムで使用するマスタの登録画面があります。 このマスタ画面は、商品の製造メーカとパターン1,2,3を選んで検索ボタンを押下することで、 登録済みのデータ抽出・データ追加等を行えるようになっています。 (フォームで登録したデータは、Aテーブルに保存され、このAテーブルのデータを抽出・追加しています。) このマスタ画面を、商品の販売店ごとにコンボボックスで指定するなどして 切り替えて抽出・データ追加できるようにしたいのですが、どのようにしたら良いのでしょうか? 商品販売店ごとのAテーブルはそれぞれの販売店ごとに既存の物があります。 今回は、システムを統合するため各販売店ごとのAテーブルを使用してフォーム上に表示させることは 出来ますでしょうか? やりたいことは・・・、 ・マスタ登録画面をひらく。 ・登録or抽出する販売店用の画面にコンボボックス等を使用して切り替える。 ・製造メーカ、パターンを既存のコンボボックスを使用して指定する。 ・データの登録or抽出をする。 下の2つについては、既存であるのでそのまま使えるかと思います。 良いやり方があれば教えて下さい。

  • Accessのmdb分析(解析)方法またはツールを教えて下さい

    Access2000のmdb解析について方法またはツールを教えて下さい。 会社で引継ぎをしたAccessのmdbなのですが、複数のmdbを利用し レポート(帳票印刷)や情報抽出を行っている様になっており、 リンクがどの様になっているのか、また、そのリンク先テーブルから 何を参照し、クエリ結果が注抽出されているのか、パッと見て解らない状態です。 今後、OracleDBへ変更する可能性もある為、引き継いだmdbの情報を まとめておきたいと考えています。 どのmdbとmdbがリンクされており、その結果何が生成されているのか というのがExcelやテキストにエクスポートできるツール等が ありましたら、教えて下さい。 Access初心者なので、うまく表現できませんがどなたか 教えて下さい。お願いします。

  • access 日付

    はじめまして。 access(初心者)です。 データを抽出したいのですが、 クエリの抽出条件にどのように条件入力してよいのか 分かりません。 テーブル名:商品マスタ データ  商品No. 開始日   終了日    価格 (1) 100 2008/12/01 2009/06/30 \1,000 (2) 100 2009/07/01 2010/02/01 \1,500 (3) 100 2010/03/01 2010/12/31 \2,000 このテーブルから、例えば、今日=2010/01/04 が含まれているデータを抽出したいのですが。。。 上の例で言うと、答えは(2) 本当すみませんが、教えて下さい。

  • Accessのリンクテーブル

    すみません、教えてください。 Accessで複数端末から一つのMDBにデータ登録をさせる為に、VBAでツールを作っています。以下のように記述をして いるのですが、MDBを閉じるたびに、リンク先のDBを認識しなくなってしまいます。テーブルでリンクを貼りなおすとまた動くようになるのですが、どうしたらリンクを貼りなおせずにできるようになるのか、どなたか教えてください。どうかお願いいたします。 Dim LinkDB as Database Dim RST AS Recordset Set LinkDB = WorkSpaces(0).OpenDatabase("リンク先のDBの名前") Set RST = LinkDB.OpenRecordset("テーブル名",DbOpenTable)

  • LIKE *ABC* が ACCESSでは使えるのにVBからは使えない??

    抽出条件に *ABC* と書くとACCESSのクエリー上では 使えるのに、 同じMDBを対象にした VisualBasic の レコードセット(?) で使うと対象を持って来れません。 なぜでしょうか?

  • access97とSQLserver6.5間のデータ連携

    access97とSQLserver6.5を用いたシステムで、SQLのDB内にあるマスタから複数個の項目を抽出し、別のデータ(これもSQLのDB内にあります)へ書き出しを行なおうとしています。 その際、accessのフォームから insert into 命令をかけて実行しているのですが、受け側 の項目の桁数が送り側の桁数よりも小さい場合、エラーがでてしまいます。 同じ事をSQLのクエリーツールで実行させるとできてしまうので、訳がわかりません。 アドバイスいただければ幸いです。 よろしくお願いいたします。

  • Access VBA について

    Access2000 をXPで動かしています。 全く別のフォルダーに入れている ABC.mdb を使って、 \Seikyu というフォルダーにある 請求sys.mdb の テーブル「銀行マスター」から銀行名等を取りだそう としています。 Dim DB As ADODB.Connection Set DB = New ADODB.Connection DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Program Files\Seikyu\請求sys.mdb;" Set RS = New ADODB.Recordset RS.Open "銀行マスター", DB, adOpenKeyset, adLockOptimistic Me.T1 = RS!ID Me.T2 = RS!銀行名 Me.T3 = RS!口座 RS.Close DB.Close こうすると、 実行時エラー '3709': このコンテキストで閉じられているかあるいは無効です のエラーが表示されます。 どこが間違いなのでしょうか。

  • VB2008 Expressで、Excelファイルへのアクセスについて

    VB2008 Expressで、Excelファイルへのアクセスについて質問します。 プログラミングが本業ではありませんが、社内で使用するツールとして、VB6+ADOで、AccessのMDBを使ったDBソフトを作った経験はあります。 そろそろ、.netを勉強しようと思うのですが、手元にあるのは、VB2008のExpressバージョンです。 これを使って、ExcelのxlsをDBのように扱うことは可能なのでしょうか? 「DBのように」というのは、xlsファイルをレコードセットに格納し、条件にあったレコードを抽出することを想定しています。 同様なことが、ExcelVBAで可能ならば、それでもいいのですが。 よろしくお願いします。

  • アクセスでの抽出について

    皆様 よろしくお願いします。 現在 製品の売上を集計していますが、売上一覧の中から特定の製品のみを抽出したいと考えています。 具体的には、製品名は数字とアルファベットの組み合わせ(18桁)となっています。 抜き出したい条件は、製品名の頭数桁(3~10桁程度)です。 例)  抜き出し条件 ・・・ ABC*  抜き出したいデータ ・・・ ABC,ABC11,ABC12 (頭数桁が合致するもの全てを抜き出したいんです) しかしながら、対象となる売上データは2万件程で、抜き出し条件も400件ほどあります。 Excelで断念し、アクセス2000で抽出クエリまではたどり着きました。 抽出の条件をファイルで提供できればできるのかな?と思いましたが、上手く行きません。 上記の他 いい方法があればぜひ教えて下さい!! よろしくお願いしますm(_ _)m

  • PHPでAccessのファイルを扱うには

    MS系はまったくわからないので、基本から教えていただきたいのですが、いくつかテーブルのあるmdbファイルがあって、検索システムを作るのでデータを抽出してPHPで処理ということをしたいのですが、mdbをそのままの形式でPHPで読み込むにはどうすればいいのでしょうか。 それともASPじゃないとダメでしょうか? 何か方法がありましたらご教授お願いいたします。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう