- 締切済み
ACCESSのフィールドの更新
マイクロソフトACCESSフォームAでテーブルBのCフィールドの更新は出来るのですが、フォームDから連結でテーブルBのCフィールドの更新が出来ません。(同じようにして2個作成したシステムのうち1個は出来たのですが、もう1個がどうしても出来ません:テーブル,クエリ,フサブフォーム,フォームの違いを捜しているのですが見当たりません。)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Dxak
- ベストアンサー率34% (510/1465)
#1です > 2つのフォームの違いはテーブルの連結があるのと無いのとです。 ぁぁ、なら、初期の話だね トラブルシューティング : クエリ (MDB) - Microsoft Corporation http://office.microsoft.com/ja-jp/access/HP030702011041.aspx クエリの種類別トラブルシューティング -選択クエリ -クエリからデータを更新できない -データを更新できない のあたりを読んでね 連結させてる片方は、主キーにしておかないと更新可能なクエリにならない 1対1か、1対多のクエリである必要があると、言う話ね
- Dxak
- ベストアンサー率34% (510/1465)
#1です > VBAの計算式(C=C-X)を実行するときエラー ? VBAで、計算式??? 演算する値を、確認できます? 例えば、Cが数値、Xが文字で認識されてるとか・・・普通は自動的に型変換されますが・・・「フォーカス取得後」で行った場合、XがNull値を取得してるとか? エラーを出して、停止した時に、それぞれの値にカーソルを持っていくと、変数に保持されている値が、表示されると思いますが・・・
お礼
有難うございました。 今一度、一からやり直してみます。
補足
有難うございます。 デバッグ時の数値は、更新されていない状態の数値が表示されます。 両方のCとも同じ値が表示されます。 エラーは「フィールドを更新できません」です。 このフィールドを別のフォームではVBAで更新できます。 2つのフォームの違いはテーブルの連結があるのと無いのとです。 無いほうは更新できます。あるほうが更新できないのです。 また、これと同じ様な別のアクセスプログラムでは更新出来るのです。 (フィールドの結合パターンは一緒です。) 何がいたずらしているのか?何が間違っているのか? ご教授宜しくお願い致します。
- Dxak
- ベストアンサー率34% (510/1465)
更新できない理由で、一番大きいのは、クエリの結合方法の違いと言うのが、初心者だと多いのですが・・・クエリの結合方法を確認ください フォームで言えば、レコードソースの部分ね 質問が漠然としてて、違いは無い!って言われれば、無いんでしょうね で、終わってしまいますが・・・
お礼
ご回答有難うございました。 クエリの結合方法を再度確認してみます。
補足
早速のご回答有難うございます。追加説明をさせて頂きます。 フォームを開いた時は、Cフィールドのデータは表示されています。 (ここへは入力しません) フィールドの更新のタイミングですが、フォームでデータXを入力後、他のコントロールに移った時のイベント(フォーカス取得後)で、VBAの計算式(C=C-X)を実行するときエラー(フィールドを更新できません)が出てストップします。計算式に使用する変数は「プロパティ/メソッドの一覧」から引用しています。また、フォーム作成時、 レコードソースはクエリからの自動生成及びフィールドリストからの 貼り付けのどちらも行いましたが、だめでした。 宜しくお願い致します。
お礼
有難うございます。 連結の片方は主キーにしてあります。 再度、クエリの勉強をし直して、 挑戦してみます。