.net uygulasi ile bir tabloya insert ettigimizi farz edelim. ID kolonu Autonumber . bu tabloya insert islemi yaptigimda insert ettigim kayitin ID degerini alip baska bir tabloya girmem gerekiyor. once insert ediyorum sonra max degerini buluyorum ama birden fazla kullanici oldugunu dusunursek ve insert ile max degeri alma islemi arasinda baska bir kullanicinin insert etmesi durumu var.
simdi sorum su
insert isleminde Autonumber olan ID kolonumun degerini alma sansim varmi ?
yoksa multiuser olayinda bu islemi nasil yapmami onerirsiniz ?
tesekurler...
Merhaba; kaydet butonuna bastığınızda başka bir kullanıcıda bassa arada fark olacağı için zaman farkı.
Dim rs As New ADODB.Recordset
Dim sorgu As String
sorgu = "SELECT Last(Tablo1.id) AS Sonid FROM Tablo1;"
rs.Open sorgu, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
MsgBox rs!Sonid + 1
rs.Close
kullanabilirsiniz veya, otomatik sayıları hep kendiniz verdirirsiniz. o şekilde işlem yaptırabilirsiniz. ki ben otomatik sayıları hiç bir zaman otomatik bırakmıyorum. örneğin diyelim ki personel listeniz var id otomatik, bir sürü işlem yapılmış, ve birisi 5 nolu personeli yanlışlıkla silmiş, diğer tablolarda işlemleri duruyor. birdaha personel numarası 5 olan bir kişi ekleyemezsiniz.
Merhaba. özgürün cevabına ek olarak,
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim GSonSayim As Integer
Set db = DBEngine(0)(0)
db.Execute "INSERT INTO tbl_tablo (adisoyadi) VALUES ('" & mtn_adisoyadi & "')"
Set rs = db.OpenRecordset("SELECT @@IDENTITY AS LastID;")
GSonSayim = rs!LastID
rs.Close
Set rs = Nothing
Set db = Nothing
MsgBox (GSonSayim)
Bu kod, butonun tıklandığında tabloya veri aktarır ve GSonSayim değişkeni aktarılan kaydın sayı numarasıdır
Tesekurler ama istedigim bu degil.
insert ettigim anda bana id dondermesini istiyorum.
once insert sonra son numarayi sorgulamak istemiyorum.
access de trigger yazabiliyormuyuz.
Merhaba, insert into kodunu çalıştırdığınızda autonumber değerini alamazsınız. Bu değeri öğrenmek için ya ekleme sorgusundan önce yada sorgudan sonra kod ile öğrenebilirsiniz.