今だけ人気マンガ100円レンタル特集♪

こんにちは。
システム開発の基礎的なところがわからないので、教えていただきたく、投稿させていただきます。
システム開発をほとんどやったことがないので、言葉が変なところもあるかと思いますが、宜しくお願いいたします。

サーバー上に、AというSQLServerのDBがあります。
今までは、システム管理者のみがAccessからA.DBのリンクテーブルを使い、マスタデータの更新/追加/削除を行っていましたが、今後、リーダークラスの人もできるようにしたい!という要望があり、そのインターフェース部分を作成しています。

いろいろと考え、フロントエンド側にAccessでB.mdbを作成し、そこには、A.DBと同じテーブル構造の一時TBLを作成し、B.mdbを開いた時にA.DBから全データを取得することにしました。(取得するところまではできています)

ここから、設定するための画面作成をしますが、最終的に、更新/追加/削除されたデータは、どのようにA.DBにUPすればいいのでしょうか?

考えた方法として
(1)B.mdb内に、一時テーブルとは別に、更に同じ構造の変更用テーブルを作成。
設定画面から更新/追加/削除されたデータは変更用テーブルに保存し、全ての処理が終了したら、変更用テーブルにあるデータを1つづつ見て、A.DBへ更新/追加/削除をかける

(2)一時テーブルのデータを直接更新/追加/削除し、全ての処理が終了したら、全テーブルのレコードを1件づつ比較し、A.DBへ更新/追加/削除をかける


というくらいしか思いつかないのです。
その他に思ったのが、一時テーブルもしくは変更用のテーブルに、レコード毎に「更新/追加/削除」がわかるようにフラグを設けて、そのフラグに従ったSQL文を発行する
というくらいです。。。
根本的に、マスタデータに対する更新/追加/削除のやり方が間違っていたりしますか?

誰も聞ける人がいないので、どうぞ宜しくお願いいたします!!!

このQ&Aに関連する最新のQ&A

A 回答 (3件)

実際に私はあまりこの手のものを作ったことがないのであまり的確なアドバイスにならないかもしれませんが、



何がいつ誰によってどう変更(追加)されたかを知る必要があるなら直接リンクテーブルのデータを変更することはできないと思います。 

ログの必要がなければ、それこそリンクテーブルのデータを連結フォームから変えてしまえばよいわけですけど、そうだったらこんな質問は出ないですよね。

>削除は、解除フラグがあるものは解除フラグを立てるだけ

これは、実際はマスタの更新なので現実に発生する処理は追加及び更新の2種類と考えてよいと思います。

私が作るなら、
(1)非連結フォームにA.dbよりデータを読み込む仕組みを作り、読み込む際にその内容をログテーブルに保存して
(2)フォーム上でマスタデータの変更を行い変更内容をA.dbに書き込むSQL文を作って、ローカルのテーブルに、登録ユーザーIDや変更時刻、 などとともに保存しておき、
(3)sqlを実行させます。 
sqlをいれたテーブルと読み込んだデータテーブルがそのままログになります。

アクセスにVBAでたくさん書くことに関しては、ちょっと抵抗があるので可能であればVBなどを使われたほうがちょっと安心できるかもしれません。 アクセスで全部作られるなら、こまめにバックアップを取りながら、、、

あまりVBAで書きたくないなら(クエリなどで片付けたいなら(考えられた方法の(1)とほとんど同じですが、全マスタデータをローカルに持ってくる必要はない。)
(1)1マスタデータをB.mdb上の仮テーブル及びログテーブルに読み込み、
(2)連結フォームで変更をさせ、B.mdbのテーブルに保存しておく。
(3)(2)で作ったデータ内容をa.dbに反映させる。

どちらのケースでもフォーム上では新規登録であるかどうかの判断は インデックスになるIDなどを一度マスタテーブルを検索して重複しているデータがあれば更新であるし、新規であれば追加ということになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
せっかくお返事いただきましたのに、私の中でどうも理解できません(;_;)

追加・更新の2種類でOKというのと、全てのマスタエータをローカルに持ってこなくて良い ということは、大変勉強になりました。
ありがとうございますね。

これを頭に入れて、もう少し調べてみることにします。
ありがとうございました!

お礼日時:2006/07/03 10:58

スーツのデザイナでプログラマではありません。


ですから、かなりトンチンカンだと思いますが...

1、Accessプロジェクトでなく、なぜ、 mdb なのかと思いました。
2、データベースの管理は、SQL文の発行で全て済ましてしまうが基本と思いますが...
3、テンポラリファイルは SQL Server に作成することも出来るのではないのかなあ・・・

こんな、他愛もない感想を持ちました。
    • good
    • 0
この回答へのお礼

s_huskyさんも、ありがとうございます。
基礎がわかっておらず、理解できないため、調べてから、検討させていただきたいと思います。

こういうことをおっしゃっていたのか!
と分るようになるといいのですが。。。
勉強不足ですみません。

お礼日時:2006/07/03 11:01

マスター変更の運用規則というのがどういうものかによりますが、



例えば変更を即座に反映させたいのか、バッチ処理などで決まった時間に反映させるのかによります。

また、変更前のマスターの状態を再現させる必要があるかどうかによってつくりが変わってきます。

あと、現在のマスターに開始日、終了日などのフィールドがあるか教えていただけますでしょうか?

この回答への補足

こんにちは!
お答えありがとうございますね。

マスタデータへのデータ登録は、あっても1週間に1回くらいです。(追加したいデータにより、更新/追加/削除にかかわるレコードの数はまちまちです)

ローカルPCにてデータを一通り更新し終わったら、すぐにマスタDBへは反映させたいと思います。
(バッチではなく、リアルタイムになるのでしょうか?)

マスタDBの設計があまりよくないため(でも、これを直すほどの手間はかけられない)、データの入力(DB構造)を覚えるのに時間がかかりますので、リーダーさんから入力してもらったデータに間違いがないか、最初の頃は、システム管理者がチェックできるようにするかということも悩んでいます。
本来でしたら、A.DBのリンクテーブルをローカルのB.mdbに作成し、直接、更新/追加/削除を行うのが一番簡単なんですが、上記点から、一時テーブルに保存して、変更したところがわかるようにしたいと思います。
(すみません、日本語おかしいかもです。。。)

>また、変更前のマスターの状態を再現させる必要があるかどうかによってつくりが変わってきます。

なので、再現させる必要もあるかもしれません。

現在のマスターには、開始日・終了日のフィールドはありません。解除フラグはあります。
・追加はデータ追加
・更新(変更)はそのまま変更
・削除は、解除フラグがあるものは解除フラグを立てるだけ(マスターにより解除フラグがないものもあるので、削除する場合も有9

という感じです。
意味、わかりますでしょうか??

補足日時:2006/06/29 16:39
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q中性洗剤について教えてください。

中性洗剤について教えてください。
木綿を洗うには中性洗剤がいいと聞きましたが、スーパーに行っても中性洗剤が見当たりませんが、どんな形で売られているのでしょうか。又、普通の洗剤(弱アルカリ性)ではやはりよくないのでしょうか。洗濯にはど素人の主夫です。

Aベストアンサー

一般的な台所用洗剤って中性洗剤です
中性洗剤といってもpH値がpH6.0以上~8.0以下となっております。
あといわゆるおしゃれ着洗いって奴は中性洗剤です。
洗剤のパッケージの裏面には、必ず「液性」を表記しなければならないことになっていますので、
今度ご自宅の洗剤の裏の表示を確認してみるといいですよ。
液性に「中性」と書いてあれば、それが中性洗剤です。
香りつづくト○プとかスタイルフィ○トとかふんわりニュービ○ズジェルとか
あとファーファも中性だったかな
あと弱アルカリ洗剤がよくないのではありません。
たしかに動物性繊維(絹とか)にはあまりよくないですけどね


人気Q&Aランキング

おすすめ情報