2017-10-08 5 views
0

私はAccessデータベースに新しいエントリを自動的に追加できるExcelマクロを作成しています。複数のユーザー環境でDAOレコードセットaddnewを使用する

Excelマクロを実行するために複数のユーザーが同時にボタンを押すと、Accessは自動的にデータベースを更新して競合を回避できますか?

私が使用する予定のサンプルコード:

Function AddName(rstTemp As Recordset, _ 
strFirst As String, strLast As String) 

' Adds a new record to a Recordset using the data passed 
' by the calling procedure. The new record is then made 
' the current record. 
With rstTemp 
.AddNew 
!FirstName = strFirst 
!LastName = strLast 
.Update 
.Bookmark = .LastModified 
End With 

End Function 

答えて

0

は限り2人以上のユーザとして何の問題があるべきではありませんないアップデート同時に同じテーブルで同じレコード。

既定のロックオプションをに変更することができます。編集済みレコードは、同じテーブル内の同じレコードの編集/挿入を避けるために使用します。

+0

です。次に、2人のユーザーが同時にコードを実行すると、1人のユーザーがテーブルのレコードを1つ選択して新しいレコードを追加し、別のユーザーがテーブルの次のレコードを選択して新しいレコードを追加するようにコードを構成する必要があります。 ちょっとした背景 - 私は、MS Accessがスプレッドシートを更新する際にラストローを同時に選択するという問題を克服できたと当初考えていました。それが私がここで達成しようとしているものです。 – Azythe

+0

新しい_を追加するためにレコードを選択しません。新しいレコードを追加するだけです。表はスプレッドシートではありません。 – Gustav

+0

@Gustavご清聴ありがとう!つまり、たとえ10人のユーザーが.addnewメソッドを同時に使用しても、競合は起こりません。 MS Accessは自動的にすべての10レコードをテーブルに挿入します - それらはすべて「新しい」レコードであり、テーブルの既存のレコードを編集していないのでですか? – Azythe

関連する問題