Skip to main content

AccessTr.neT


Access'ten ID almak

Access'ten ID almak

Çözüldü #1
.rar Excel_Access.rar (Dosya Boyutu: 37,86 KB | İndirme Sayısı: 20)
Merhaba arkadaşlar...
Eklediğim örnekte Excel den Access'e veri ekliyorum.
İstediğim son kayıtın ID numarasını formun txtId kutusuna getirmek olacak fakat yapamadım.
Yardımlarınızı rica ediyorum.
Saygılarımla....
Cevapla
#2
Arkadaşlar o kadar zor olmasa gerek bir el atsanız.
Cevapla
#3
Merhaba;
Aşağıdaki kod ile DATA tablosundaki son ID numarasını formunuz üzerindeki metin kutusuna çekebilirsiniz.
Ayrıca, DLAST() fonksiyonunu ve kullanım çeşitliliğiniz sitemizden araştırmanızı öneririm
İyi çalışmalar.

Me.Text1 = DLast("ID", "Data")
Cevapla
#4
Hocam ilginize minnettarım.
Verdiğiniz kod Access için olasa gerek çünü çalışmadı veya ben yapamadım.
Ben ise Excel UserForm ile Access'e her kaydettiğimde txtKod adlı metin kutusuna son kaydın ID'si bir artarak gelmesi idi.
Sitede:
Excel Cevaplanmış Soruları
Excel Soru ve Cevaplar
Bölümünü taradım konu ile ilgili örnek bulamadım.
Saygılarımla...
Son Düzenleme: 13/10/2015, 00:41, Düzenleyen: ahatbek.
Cevapla
#5
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.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#6
Sayın atoz112 hocam öncelikle önerileriniz için teşekkür ederim.

Aslında yapmakta olduğum çalışmada sizin verdiğiniz kodların tamamı mevcut ve en az 30 text ve combo'lardan oluşan bir çalışma ve gayet iyi çalışıyor ve işimi de görüyor.

Eklediğim örneğin daha anlaşılır ve sade olması açısında 3 adet text ile sadece kayıt işlemini yapan bir örnekti.

Bunun otomatik sayı olduğunu biliyorum.  Bir yolu varmı acaba diye böyle bir talepte bulunmuştum.

Amacım Excel UserFormu'na access'ten veriyi alıp tekrar daha sonra oluşturacağım ( X ) tablusuna kaydettiğimde son kaydın ID numarasını ilgili text'te göstermesi idi. Bu veriyi excel'in ( x ) sayfasına ID numarası ve diğer bilgileri aktarıp çıktısını almaktı. Bu işlemlerin tamamını (ID hariç) yapabiliyorum.

Saygılarımla...
Son Düzenleme: 13/10/2015, 14:06, Düzenleyen: ahatbek.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task