
製品情報を管理するデータベースを作成する中での質問です。お願いします。
・製品ID
・製品名
・製品型番
・製品色
等、製品に関する情報をデータベースに登録しています。
登録したデータ一覧から、1つの製品IDを選択すると、その製品IDの情報すべてがフォームに表示され、編集と削除ができます。
そのフォーム上にもう一つボタンを追加し、表示された製品情報の一部を編集して、上書き(更新)ではなく、新規製品として新しいIDで登録する機能をつけました。(似たような製品を登録する時に、すべて一から入力するのは手間なので、似たような製品の情報を利用して新規登録する、といった具体)
追加クエリを使用します。
その追加クエリは、問題なく動作しています。
ただ、追加クエリでデータを追加後、そのフォームを閉じようとすると、元の製品IDのデータが編集途中なのにフォームを閉じるの?とみなされてしまうようで、毎回「このレコードは保存できません」とエラーメッセージが出ます。
このエラーメッセージを出したくないのですが、どこを直せばよいでしょうか?
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Cancel=trueと言う事は、データのチェックをしようとしている訳です
よね。普通は、データの整合性の観点からエラーチェックを主体にして
この文脈が有ります。だから、不用意にこれを使うとデータ更新が出来
ない事になります。
Cancel=trueの条件に合致すると当然にレコードは保存されません。こ
の場合に保存をする方法と言うのは、エスケープキーを打鍵してこのレ
コードの保存を断念するだけです。
だって、プログラムの方で有る条件を満たしていると言う事で
Cancel=trueになっているのですから。具体的にこのCancel=Trueを指定
しての文脈と言うのは。
例えば、コードとして性別と言うのが有って男性を1に、女性を2に設定
をしている場合に有るユーザーが誤って3を打鍵をした時にここで
Cancel=trueにして誤ったレコードが保存されない様にガードを掛けま
す。
ですから、きちんとAccessの方は動作をしているのです。だから、それ
が期待をした動作で無いと言うので有れば。そもそものCancel=trueに
した時の条件文に問題が有ると言う事です。
これ以上は回答は出来ません。と言うのは、何も明らかにはなっていな
いからです。具体的なデータが有れば一歩踏み込んだ回答は出来ます
が。
頑張って下さい。
No.2
- 回答日時:
質問している内容がイメージとして湧きませんが。
考えられる事は、追加をしようとしているオブジェクトが、他のオブジェクトが掴んで離さ
ないのでオブジェクトの解放を待っている。然し、肝心のAccessは待っ
て来れない。と言った状況が考えられます。
だから、この場合は問題が発覚する前にオブジェクトを誰が掴んでいた
のかと言う所です。この最後にオブジェクトを掴んだ人が犯人です。
今の説明では誰も的確な回答は出来ないと思います。あるいは、追加を
しようとする時にキー違反などが影響をしているのかも知れません。
データベースの処理と言うのは、設計は正しい様に見えても実際に動く
動かないと言うのはそれとは別のデータに依り多く影響されます。
ですから、この場合と言うのは事前にありとあらゆるデータのキー違反
に関しても十分なチェックと言うのは必要になります。その辺の処理に
抜けは無いのでしょうか。
また、これらの問題に関してはより具体的に問題となっている状況を詳
細に公開をされる事が問題が早期に解決をされるのではないでしょう
か。
つたない回答で申し訳ありません。
No.1
- 回答日時:
プログラミングの話ですか?
月明日コードを動かすことでそういったエラーが出るなら
その追加した部分が何かしらの影響を与えているのは間違いないでしょうが
元々のプログラムの構成がどうなっているのかわからない以上誰にも回答できませんよ
思い付きでいえばトランザクション処理内で処理するように作ってて
新たなコード部分を動かして終了すると
トランザクション終了しないままアプリ落とそうとしてるとか
以下の情報探してみたら?
https://www.google.co.jp/search?q=%E3%81%93%E3%8 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MS-Accessのエクスポートで異常...
-
業務用のデータベースサーバー...
-
ACOSのRDBについて教え...
-
ACCESSのクエリからORACLEのDB...
-
PCが悪くなって新しいPCにSSMS...
-
DATファイルをEXCELで開きたい
-
【DB】同じトランザクション内...
-
accessの処理が遅い
-
警察はスマホに保存した動画や...
-
復旧中のデータベースについて
-
一つのテーブルだけを復元(リス...
-
VSAM,QSAM,BSAM,BPAM,BDAM
-
期限切れのバックアップの削除
-
エクセルのフィルタ抽出が固まる
-
SQL*Loaderのコミットポイント...
-
BACKUP DATABASE とINSERTが同...
-
ファイルを誤ってPDFに変換...
-
postgresql についてです
-
ログファイルの圧縮がされずに...
-
SQLServerバックアップ戻せない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MS-Accessのエクスポートで異常...
-
ACCESSのデータをWebブラウザで...
-
1回目の実行に3分、2回目の実行...
-
Sqliteで使えない文字。
-
accessの上限容量2Gでは容量が...
-
会社の諸事情により全システム...
-
ACCESSのクエリからORACLEのDB...
-
ACOSのRDBについて教え...
-
データマイニングに有効なAPI
-
別サーバーへのデータの同期更...
-
ツリー情報のデータをSQLで取得...
-
SQLServerのDBのうちテーブルを...
-
サーバーにおいてあるデータベ...
-
oracleデータベースの更新履歴
-
PL/SQLで複数のFor文を解除したい
-
データファイルに書き込まれる...
-
SQL文で、重複データの上書きは...
-
ACCESS2010 Excelエクスポート ...
-
大規模データ検索結果の検証方法
-
業務用のデータベースサーバー...
おすすめ情報
わかりづらい説明で申し訳ありません。
ちょっと質問の方向を変えます。
フォームを開いた時に、更新前処理 Cancel = Trueの設定をしています。
そして、いくつかの項目を編集後に、OKボタンを押すとレコードが更新されます。
こういうフォームの場合、途中まで編集してOKボタンを押さずにフォームを閉じようとすると、
「このレコードは保存できません」とメッセージが出てしまいます。
このメッセージを出さないようにしたいのです。
お願いいたします。