アプリ版:「スタンプのみでお礼する」機能のリリースについて

製品情報を管理するデータベースを作成する中での質問です。お願いします。

・製品ID
・製品名
・製品型番
・製品色
等、製品に関する情報をデータベースに登録しています。
登録したデータ一覧から、1つの製品IDを選択すると、その製品IDの情報すべてがフォームに表示され、編集と削除ができます。
そのフォーム上にもう一つボタンを追加し、表示された製品情報の一部を編集して、上書き(更新)ではなく、新規製品として新しいIDで登録する機能をつけました。(似たような製品を登録する時に、すべて一から入力するのは手間なので、似たような製品の情報を利用して新規登録する、といった具体)
追加クエリを使用します。
その追加クエリは、問題なく動作しています。
ただ、追加クエリでデータを追加後、そのフォームを閉じようとすると、元の製品IDのデータが編集途中なのにフォームを閉じるの?とみなされてしまうようで、毎回「このレコードは保存できません」とエラーメッセージが出ます。
このエラーメッセージを出したくないのですが、どこを直せばよいでしょうか?

よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    わかりづらい説明で申し訳ありません。
    ちょっと質問の方向を変えます。
    フォームを開いた時に、更新前処理 Cancel = Trueの設定をしています。
    そして、いくつかの項目を編集後に、OKボタンを押すとレコードが更新されます。
    こういうフォームの場合、途中まで編集してOKボタンを押さずにフォームを閉じようとすると、
    「このレコードは保存できません」とメッセージが出てしまいます。
    このメッセージを出さないようにしたいのです。

    お願いいたします。

      補足日時:2016/03/03 08:54

A 回答 (3件)

Cancel=trueと言う事は、データのチェックをしようとしている訳です


よね。普通は、データの整合性の観点からエラーチェックを主体にして
この文脈が有ります。だから、不用意にこれを使うとデータ更新が出来
ない事になります。

Cancel=trueの条件に合致すると当然にレコードは保存されません。こ
の場合に保存をする方法と言うのは、エスケープキーを打鍵してこのレ
コードの保存を断念するだけです。

だって、プログラムの方で有る条件を満たしていると言う事で
Cancel=trueになっているのですから。具体的にこのCancel=Trueを指定
しての文脈と言うのは。

例えば、コードとして性別と言うのが有って男性を1に、女性を2に設定
をしている場合に有るユーザーが誤って3を打鍵をした時にここで
Cancel=trueにして誤ったレコードが保存されない様にガードを掛けま
す。

ですから、きちんとAccessの方は動作をしているのです。だから、それ
が期待をした動作で無いと言うので有れば。そもそものCancel=trueに
した時の条件文に問題が有ると言う事です。

これ以上は回答は出来ません。と言うのは、何も明らかにはなっていな
いからです。具体的なデータが有れば一歩踏み込んだ回答は出来ます
が。

頑張って下さい。
    • good
    • 0

質問している内容がイメージとして湧きませんが。

考えられる事は、追
加をしようとしているオブジェクトが、他のオブジェクトが掴んで離さ
ないのでオブジェクトの解放を待っている。然し、肝心のAccessは待っ
て来れない。と言った状況が考えられます。

だから、この場合は問題が発覚する前にオブジェクトを誰が掴んでいた
のかと言う所です。この最後にオブジェクトを掴んだ人が犯人です。

今の説明では誰も的確な回答は出来ないと思います。あるいは、追加を
しようとする時にキー違反などが影響をしているのかも知れません。

データベースの処理と言うのは、設計は正しい様に見えても実際に動く
動かないと言うのはそれとは別のデータに依り多く影響されます。

ですから、この場合と言うのは事前にありとあらゆるデータのキー違反
に関しても十分なチェックと言うのは必要になります。その辺の処理に
抜けは無いのでしょうか。

また、これらの問題に関してはより具体的に問題となっている状況を詳
細に公開をされる事が問題が早期に解決をされるのではないでしょう
か。

つたない回答で申し訳ありません。
    • good
    • 1

プログラミングの話ですか?


月明日コードを動かすことでそういったエラーが出るなら
その追加した部分が何かしらの影響を与えているのは間違いないでしょうが
元々のプログラムの構成がどうなっているのかわからない以上誰にも回答できませんよ

思い付きでいえばトランザクション処理内で処理するように作ってて
新たなコード部分を動かして終了すると
トランザクション終了しないままアプリ落とそうとしてるとか

以下の情報探してみたら?
https://www.google.co.jp/search?q=%E3%81%93%E3%8 …
    • good
    • 1

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

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