Skip to main content

AccessTr.neT


Insert Te Autonumber Degerini Almak Mumkun Mu

Insert Te Autonumber Degerini Almak Mumkun Mu

Çözüldü #1
.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...
Cevapla
#2
Merhaba; kaydet butonuna bastığınızda başka bir kullanıcıda bassa arada fark olacağı için zaman farkı.  

 
Visual Basic Code
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.
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla
#3
Merhaba. özgürün cevabına ek olarak,

Visual Basic Code
   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
Cevapla
#4
Tesekurler ama istedigim bu degil. 
insert ettigim anda bana id dondermesini istiyorum. 
once insert sonra son numarayi sorgulamak istemiyorum. 


access de trigger yazabiliyormuyuz.
Cevapla
#5
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.
Cevapla
#6
(22/04/2018 12:00)ozanakkaya Adlı Kullanıcıdan Alıntı: 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.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da