Sayın ahatbek,
Öncelikle bir hususu belirtmekte fayda var kanısındayım.
Konuyu açarken ilk mesajınızda
Alıntı:...İstediğim son kayıtın ID numarasını formun txtId kutusuna getirmek...
ifadesini kullanırken,sayın direnist’in katılımındaki mesajın akabinde de
Alıntı:...Ben ise Excel UserForm ile Access'e her kaydettiğimde txtKod adlı metin kutusuna
son kaydın ID'si bir artarak gelmesi idi...
ifadesini kullandınız.
İki talep arasında fark var,değer aktarımı üzerine.bu nedenle,asıl talebinizi ilk mesajınızda daha net ifadeler ile beyan etmek ile çözüm sonuçlarına daha verimli ulaşma imkanı elde etmiş olursunuz.böylece,katılımcı olmayı isteyen üyelerin de bu doğrultuda zaman harcamasına ve ilgilenmesine zemin hazırlamış olursunuz.herkes için daha fayda sağlar.
Son olarak,talebinize yönelik ise şu açıklamanın yapılması uygun görülmüştür.
Excel userform üzerinde ve
Access uygulamanızdaki DATA adlı tablonuzun yapısı incelendiğinde,bu talebinizin gerçekleşmesi,bu hali ile geçersiz kalacaktır.çünkü;Access tablosunda ID alanı Otomatik Sayı olarak belirlenmiş.bu nedenle de,bu alana farklı bir değeri manuel olarak veremezsiniz.
Nedenini tekrarlamak gerekirse; Veri Türü olarak Otomatik Sayı belirlenmiş bir alanın değerini ya da sıralamasını değiştiremezsiniz.kaldığı sıra değerinden itibaren devam eder.hem veri türünü bu şekilde ayarlayıp ardından da farklı değer vermek geçersiz işlem sorunu olarak geri döner.
Eğer
Excel üzerinden kendiniz tarafınızdan bir ID değeri tanımlamak istiyorsanız,o zaman;ilk yapmanız gereken
Access tablosundaki bu alanın veri türünü Otomatik Sayı olarak değil Sayı olarak değiştirmelisiniz.daha sonrasında,excel uygulamanızda ilgili textbox değerine kendi istediğiniz değeri yazdırabilirsiniz.
Kaldı ki,yeni bir ID değerini hariçten belirtmenize de gerek olmadığı kansındayım.çünkü;zaten bu alanın veri türü Otomatik Sayı.sizin yapmanız gereken sadece diğer kayıt bilgilerini girmek olması daha geçerli ve uygun olanı.
bir kayıt yaptıktan sonra userform üzerindeki textbox denetimlerinin temizlenmesini sağlamak sureti ile ilgili denetimlerde yeni boş denetimler oluşturabilirsiniz,yeni bir kayıt girmeye hazır duruma getirmek adına.bunun için de,örnek vermek gerekirse:
1)
önce,kod sayfasında boş bir kısımda
Kod:
Sub temizle()
Me.txtTc.Value = ""
Me.txtAd.Value = ""
Me.txtSoyad.Value = ""
End Sub
Kodlarını kopyala-yapıştır ile aktarınız.
2)
Ardından da,EKLE butonunun içeriğini aşağıdaki ile değiştiriniz.
Kod:
ID = "'" & txtId & "'"
Tc = "'" & txtTc & "'"
Ad = "'" & txtAd & "'"
Soyad = "'" & txtSoyad & "'"
Call baglanti
Set rs = baglan.Execute("INSERT INTO DATA (TC_NO,ADI,SOYADI) Values (" & Tc & "," & Ad & "," & Soyad & ")")
Set baglan = Nothing: Set rs = Nothing:
listeye_al
MsgBox "Kayıt eklendi.", vbInformation + vbOKOnly, "AhatBek"
temizle
Me.txtTc.SetFocus
Bir diğer harici bilgi olması adına,userform üzerindeki listeye tıklandığında kayıt bilgilerinin ilgili textbox denetimlerine aktarılmasını sağlamak için,aşağıdaki kod satırlarını yine boş bir kısımda ekleyiniz.
Kod:
Private Sub ListBox1_Click()
Me.txtId.Value = Me.ListBox1.Column(0)
Me.txtTc.Value = Me.ListBox1.Column(1)
Me.txtAd.Value = Me.ListBox1.Column(2)
Me.txtSoyad.Value = Me.ListBox1.Column(3)
End Sub
Bilgilendirmelerin verimli olması temennisi ile.Bilginize…iyi çalışmalar,saygılar.