1

「データ入力」プロパティが「はい」に設定されているフォームがあります。テーブルにバインドされています。フォームへの入力を開始すると、自動的に保存されます。私はこれが起こることを望んでいません。ボタンを押したときにフォームをテーブルに保存するだけです。これを行う簡単な方法はありますか?vbaなし。vbaでしかこれを行うことができない場合は、その方法を教えてください。

4

1 に答える 1

1

これを行う最善の方法は、バインドされていないフォームを使用することです。ユーザーが [保存] をクリックすると、クエリを実行してコントロールからテーブルを更新できます。

レコードセットの使用

 Dim rs As Recordset
 Set rs=CurrentDB.Openrecordset("MyTable")

 rs.AddNew
 rs!Field1 = Me.Field1
 rs.Update

主キーがすでにわかっているレコードを更新したい場合は、次のように言えます。

 Dim rs As Recordset
 Set rs=CurrentDB.Openrecordset("SELECT * FROM MyTable WHERE ID=" & Me.txtID)

 rs.Edit
 rs!Field1 = Me.Field1
 rs.Update

クエリ デザイン ウィンドウで作成したクエリを使用する

クエリの SQL

 INSERT INTO MyTable (Field1) 
 VALUES ( Forms!MyForm!Field1 )

VBA

これにより、警告が表示されます

 DoCmd.OpenQuery "MyQuery"

これはしません

 CurrentDb.Execute "Query2", dbFailOnError

コードで割り当てるパラメーターを含む動的 SQL またはクエリを使用することもできます。

于 2012-08-30T21:37:17.427 に答える