Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


348 / 2272 ツリー ←次へ | 前へ→

【12062】フォームから戻る際に・・・ コラーゲン 11/9/2(金) 14:51 質問[未読]
【12063】Re:フォームから戻る際に・・・ nonon 11/9/2(金) 15:03 発言[未読]
【12064】Re:フォームから戻る際に・・・ nonon 11/9/2(金) 15:12 発言[未読]
【12065】Re:フォームから戻る際に・・・ コラーゲン 11/9/2(金) 15:31 お礼[未読]
【12066】Re:フォームから戻る際に・・・ nonon 11/9/2(金) 15:48 発言[未読]

【12062】フォームから戻る際に・・・
質問  コラーゲン  - 11/9/2(金) 14:51 -

引用なし
パスワード
   超初心者です。初めて投稿します。

ご存知の方がいらっしゃったら教えてください。


ACCESSでテーブルを更新するためのフォームを作成しています。

メインフォームからテーブル更新用フォームへ移行し、データの項目を
入力してテーブルを更新するフォームに、新しく「メインへ戻る」ボタンを
追加しました。
マクロでメインフォームへ戻る機能を追加してうまくできたと思ったのですが、
入力項目を途中まで入力した状態で戻るボタンを押した場合、途中の状態で
テーブルが更新されてしまいます。
いろいろ試しては見たものの、うまくいきません。

どうすればよいか教えてください。

【12063】Re:フォームから戻る際に・・・
発言  nonon  - 11/9/2(金) 15:03 -

引用なし
パスワード
   ▼コラーゲン さん:

はじめまして、nononと申します。

もうちょっと具体的に教えてください。

画面にテキストなどが貼り付けられていて、入力後に
登録ボタンなどを押下し、データ登録を行う方法ではなく、
データシートとして表示して、直接データを変更している。
と認識して良いでしょうか?

上記の認識であれば、更新中であってもすぐにcommitされる
ので理解はできます。


っということで、ざっと案を記載してみます。

案1.:データシートではなく、テキストなどにて入力させ、
   コード書いてデータを登録する。

案2.:更新したいテーブルのWorkTableを作成
   更新画面にはWorkTableをデータシートで表示
   更新ボタンを押下すると、WorkTableから更新したい
   テーブルへ登録。
   ※画面読み込み時にWorkTableへデータコピー必要


など。

【12064】Re:フォームから戻る際に・・・
発言  nonon  - 11/9/2(金) 15:12 -

引用なし
パスワード
   ▼コラーゲン さん:

nononです。

一つ訂正です。

>データシートとして表示して、直接データを変更している。

↑ データシートなどで表示して

【12065】Re:フォームから戻る際に・・・
お礼  コラーゲン  - 11/9/2(金) 15:31 -

引用なし
パスワード
   ▼nonon さん:
>▼コラーゲン さん:
>
>nononです。
>
>一つ訂正です。
>
>>データシートとして表示して、直接データを変更している。
>
>↑ データシートなどで表示して

nononさん こんにちわ。

回答ありがとうございます。

nononさんのおっしゃるとおり、データシートにテキストボックスやらコンボボックスやらをペタペタ貼り付けて入力用フォームを作成しました。
その場合、テーブルを直接更新しているため、提示してくださった案などで
なんとかやるしかない感じですかね・・・

うむむむ、ちょっと難しいそうです。(ToT)

どうもありがとうございました。

【12066】Re:フォームから戻る際に・・・
発言  nonon  - 11/9/2(金) 15:48 -

引用なし
パスワード
   ▼コラーゲン さん:

どうも、nononです。

直接更新しているのであれば、やはり他の方法を考えないと
いけないかもしれませんね。

戻るボタンの有無に関わらず、Access閉じても同じ事でしょうし。

「更新を確定させてから、本物の?Tableを更新する。」
を実現するのであれば、チョコチョコ制限をつけるコードを
書くしかないと思われます(^-^;

1件1件の登録をしたいのか、複数をドーンとしたいのか、
によっても違ってきますし。。。

本Table⇔WorkTableのやりかたは簡単で、以下のコードとかでも
できますが・・・やはり、○○の場合はどうするとかを決めなけ
ればならないと思いますので、ちょいと考えないといけません。

(どのような要件があるのか分からないので、何とも言えませんが。。。)

Dim db As Database
Set db = CurrentDb
  
db.Execute "DELETE FROM " & Table名
db.Execute "INSERT INTO " & Table名 & " SELECT * FROM " & Table名

348 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free