• ベストアンサー

Accessの保存のタイミングについて

お世話になります。 Access2000で作っているデータベースなのですが、 フォームにデータを打ち込み、テーブルに情報を追加していきたいのですが、 ひとつのテキストボックスに情報を書き込み、フォーカスを離しただけでテーブルにはその情報が追加されてしまいますよね? それを、フォーカスを離した後もテーブルには保存せず、 フォームに「登録ボタン」を追加して、それを押すとその情報がテーブルに追加するようにすることは可能なのでしょうか? また、可能ならヒントをいただきたいです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>フォーカスを離しただけでテーブルにはその情報が追加されてしまいますよね? いいえ レコードが書き込まれるのは (1)他のレコードに移動したとき (2)フォームを閉じたとき (3)保存コマンドを発したとき です >フォームに「登録ボタン」を追加して、それを押すと >その情報がテーブルに追加するようにすることは可能なのでしょうか? 自動的に書き込まれることを防止したいのなら 書き込まれる直前に書き込んでいいかどうかを確認するほうがいいのでは フォームやAccessを閉じるときにも書き込まれてしまいますからね Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("REALY?", vbYesNo) = vbNo Then Cancel = True End If End Sub

F064D0307
質問者

お礼

根本的に勘違いをしていたようです。 解決しそうです。 とても参考になりました。 ありがとうございました。

その他の回答 (1)

  • celtJapan
  • ベストアンサー率31% (67/211)
回答No.1

フィールドを直接フォームに埋め込んでいる以上そうなります。

参考URL:
http://www.accessclub.jp/bbs3/0263/superbeg82172.html
F064D0307
質問者

お礼

参考URLをありがとうございます。 自分でも関連サイトを探したつもりだったのですが、探し方が悪かったようです。 ありがとうございました。

関連するQ&A

  • アクセスコマンドボタンで登録。

    アクセスのフォームで、コマンドボタンをクリックして、初めて登録ができるというのはどのようにすればいいのでしょうか?普通、登録画面といったら、テーブルを基にしてフォームを作成していいのでしょうか?それとも非連結にしてフォームからフォームへ登録という風にするものなのでしょうか?フォーム上のテキストボックスに一つでも文字を入力すると、×ボタンで消しても、データがテーブルに入っていってしまいます。これを防ぐことはできるのでしょうか?保存でもいいですし登録でもいいのですが、コマンドボタンを作成して、それをクリックして初めてテーブルにデータが入っていくという風にしたいのですが。どなたか分かる方居ましたらご教示ください。宜しくお願いします。

  • Access2010 テキストの連結

    よろしくお願いします。 Access2010を使用しております。 非連結のフォームに入力した情報を、 保存ボタンで、テーブルに追加しております。 そこで、サブフォームにある複数のテキストボックスをボックス毎に改行して、 一つのフィールドに入れたいと思っております。 一つ一つのテキストボックスは別テーブルを作っておりますが、メインにしているテーブルには、一つのフィールドに入れたいのです。 txt箱1、txt箱2、…txt箱20の空白ではないテキストボックスを改行して、一つのフィールドに追加したいです。 テキストボックスが、ランダムに記入されていたり、空白が間にあると、 うまく一つのフィールドに入れることができません。 改行が何個も入った箇所ができてしまいます。 間に空白があっても、改行を綺麗に入れて、 一つのフィールドに入力させるには、どうしたらよろしいでしょうか。 お世話になりますが、よろしくお願いします。

  • ACCESSのフォームについて

    いつもお世話になっております。 Accessですでにあるデータベースに新しいマスタを追加し、テーブルに挿入しました。リレーションシップで連結しました。  フォームに新しくそのデータを表示するテキストボックスを作ったのですが、プロパティのコントロールソースに新しいマスタの項目がなく、新しいマスタのデータを表示できません。 新しいマスタを後から追加した場合、もう一度フォームウィザードで作り直す方法しかないのでしょうか? 普通は設計段階でこのようなことがないようにすると思いますが、なにぶん、データベースに関しては初心者なのでこのようなことになってしまいました。 どうぞよろしくお願いします。

  • アクセスでのデータ保存について。

    アクセスの登録画面で、ボタンをクリックしたときのみ保存したいのですが、×印を押して閉じても1つでもデータが入力されていたら、保存されてしまいます。保存というボタンをクリックして初めて、テーブルにデータが入っていくという風にはできないのでしょうか? tbl_商品・・・商品番号,商品名,更新日とあります。frm_商品・・・登録,修正,削除,参照,クリア,閉じるというコマンドボタンと商品番号,商品名,更新日のテキストボックスがあります。仕様としては、一画面で新規商品名入力やデータの修正、削除、商品一覧等が見れるようにしたいのです。frm_商品を開くときは、新規フォームだけが開けばいいのですが、入ってしまっているデータはやはり見れてしまうのでしょうか?参照をクリックすることでクエリを開かせて詳細情報が参照できるように作成したいのですが・・。

  • アクセス2000でデータの追加がうまくいかないんですけど

    アクセス2000を使ってます。 基礎データというテーブルを作って、そこに「テキスト」というメモ型のフィールドを作り、 参照追加フォームというフォームを作って、その中に二つのテキストボックスを配置し、一方のテキストボックス1には「基礎データ」の「テキスト」をコントロールソースとして設定し、他方のテキストボックス2は非連結にし、コマンドボタンを二つ配置して、一方のコマンドボタン1を押すと、テキストボックス1のデータがテキストボックス2のデータにコピーされるようにVBAコードを書き、さらに、もうひとつのコマンドボタン2を押すと、非連結のテキストボックスのデータを、基礎データテーブルの「テキスト」というフィールドに追加する追加クエリを動かすようにしました。  このような状況で、コマンドボタン2を押すと、非連結のテキストボックス2のデータが、全角126文字までなら正常に動作するのですが、それ以上(全角127文字以上)になると、「引数が無効です。」というエラーが出てしまいます。 基礎データテーブルの「テキスト」はメモ型に設定してあるのに、どうしてこのようなエラーが出てしまうのでしょうか?誰か教えてください。  ※ためしに、追加クエリ単独で動かして、全角127文字以上のデータを入れた場合には、追加クエリは正常に動作します。これって、フォーム側の問題なんですか?  

  • ACCESSにて・・・

    accessにて・・・ フォームには初期値としてテーブルのデータがテキストボックス等に表示されます。 本来は、変更すべき項目があれば変更して(この時点ではテーブルは更新されない)、更新ボタンを押すとテーブル更新・・・としたいのですが・・・フォームのテキストボックス等に入力した項目が入力した時点でテーブルに更新されてしまいます・・・何か設定があるのでしょうか?

  • ACCESSのデータ入力

    access2000です。 本を読んでデータベースを作ろうとしているのですが テーブルで、入力したいフィールドの名称を登録して フォームで入力画面を作りました。 これでは フォームに入力したデータは左上にある▲みたいなものを押さないと登録されないようです。 フォーム上に大きなボタンでテーブルに登録したいです。 本には載っていないのですが どうすればいいのでしょうか?

  • Access フォームを動的にカスタマイズ

    お世話になります。 Access2010 現在Accessにて、ある情報の登録フォームを作成しております。 登録項目が複数ありフォームが縦長になりそうなので、基本情報の 登録は必須とし、その他の項目はオプションにしたいと思います。 そこで、チェックボックスにチェックが入れられたら、オプションを 登録できるよう登録フォームの高さを長くするのと同時に、オプション 項目も表示させたいのですが。。どのようにすればよいでしょうか。 予めオプション項目が追加されているフォームを作成しておき、 チェックが入れられたら、そっちのフォームにすり替える方法(必須項目が 入力されていたらそれぞれコピー)や、フォームサイズは変えずに チェックが入れられたら「登録」ボタンを「次へ」に変更させ、 次画面でオプション項目を入力させたり・・色々と方法はあるかと 思いますが、上記のようにフォームの長さを変えて、項目(テキストボックスや リストボックス)を追加することは可能でしょうか。 ご教示の程、宜しくお願い致します。

  • Accessのフォームでデータ入力時に保存するタイミング

    Accessでフォームを使ってデータを追加しているときに、データを入力した時点でレコードに追加されてしまいますよね? それを、保存ボタンなどで実行してからレコードに追加されるようにするにはどうしたらいいでしょうか? どなたかご存知でしたらおねがいします。

  • Access2010 SetFocusが当たらない

    Access2010です。 VBAにて、あるフォームの、デザイン上、「詳細」の中に存在しているテキストボックスにSetFocusでフォーカスを当てようと思ってます。 1 フォームロード時、フォームの「詳細」は非表示(当然、テキストボックスも非表示) 2 ボタンクリック時、フォームの「詳細」を表示し、テキストボックスにフォーカスを当てる という動作をしているのですが、2でテキストボックスにフォーカスがフォーカスが当たりません。どうしたらフォーカスが当たるのでしょうか? 以下、コードです。 Private Sub Form_Open(Cancel As Integer) Me.詳細.Visible = False End Sub Private Sub cmdボタン_Click() Me.詳細.Visible = True 'テキストボックスにフォーカスを当てる Me.txtテキスト.SetFocus End Sub よろしくお願いいたします。

専門家に質問してみよう