Insert Te Autonumber Degerini Almak Mumkun Mu

21/04/2018, 17:07

dabanli

.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...
21/04/2018, 21:40

ozguryasin

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.
21/04/2018, 22:24

ozanakkaya

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
22/04/2018, 02:54

dabanli

Tesekurler ama istedigim bu degil. 
insert ettigim anda bana id dondermesini istiyorum. 
once insert sonra son numarayi sorgulamak istemiyorum. 


access de trigger yazabiliyormuyuz.
22/04/2018, 12:00

ozanakkaya

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.
22/04/2018, 16:06

dabanli

(22/04/2018, 12:00)ozanakkaya yazdı: 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.

tesekurler.