ana tablo ve alt tablomuz var
ana tablo alanları
adı
soy adı
bildiği yabancı dil sayısı
diye
ve alt tablomuz var
bildiği dillerin listesi
Ana tablomuzdaki bildiği yabancı dil sayısını atıyorum 3 girsek alt tabloda 3 satırı otomatik açarmı???
text kutusundaki sayıya göre alt tabloda kayıt açma
Tabii ki açar ancak kod yazmak gerekiyor tabii.
Forumda daha önce yapılmıştı böyle bir örnek diye hatırlıyorum ama tüm aramalarıma rağmen bulamadım.
Bende yeniden yazdım.
Siz sadece yeni kayıt eklerken açsın diye düşünmüşsünüz, peki önce 3 yazıp daha sonra "aaa tüh yanlış oldu" deyip 5 yazmak isterseniz veya tam tersi 5 yazıp sonra "aaa hay allah yanlış yazmışım" deyip 3 olarak düzeltmek isterseniz noolacak?
Neyse, ben onları da düşündüm
Buyrun.
Forumda daha önce yapılmıştı böyle bir örnek diye hatırlıyorum ama tüm aramalarıma rağmen bulamadım.
Bende yeniden yazdım.
Siz sadece yeni kayıt eklerken açsın diye düşünmüşsünüz, peki önce 3 yazıp daha sonra "aaa tüh yanlış oldu" deyip 5 yazmak isterseniz veya tam tersi 5 yazıp sonra "aaa hay allah yanlış yazmışım" deyip 3 olarak düzeltmek isterseniz noolacak?
Neyse, ben onları da düşündüm
Buyrun.
Kod:
Private Sub Form_AfterUpdate()
Dim StrSQL, i, KayitSayisi
'-----------------------------------------------------------------------
' Burada ADODB kısmına hata veriyorsa, Menüde Araçlar, Referanslar kısmından gelen listeden
' "Microsoft Activex Data Object 2.x Library" seçilmelidir.
'-----------------------------------------------------------------------
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
StrSQL = "Select * From Tablo2 Where KAYITNO=" & Me.KAYITNO
RS.Open StrSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'Yeni kayıtsa
If Me.NewRecord Then
'Girilen Yabancı Dil Sayısı kadar kayıt açılıyor.
For i = 1 To Me.YBNC_DIL_SAYISI
RS.AddNew
RS("KAYITNO") = Me.KAYITNO
RS.Update
Next i
Else
'Eski kayıtta güncelleme yapılıyorsa,
'öncelikle tablo2'de daha önce kaç kayıt olduğuna bakılıyor
KayitSayisi = RS.RecordCount
'Sayı arttıysa, artan kadar kayıt açılıyor.
If Me.YBNC_DIL_SAYISI > KayitSayisi Then
For i = 1 To (Me.YBNC_DIL_SAYISI - KayitSayisi)
RS.AddNew
RS("KAYITNO") = Me.KAYITNO
RS.Update
Next i
End If
'Sayı azaldıysa, fazla kayıtlar siliniyor.
If Me.YBNC_DIL_SAYISI < KayitSayisi Then
For i = 1 To KayitSayisi
If i > Me.YBNC_DIL_SAYISI Then
RS.Delete
End If
RS.MoveNext
Next i
End If
End If
'Açılan RecordSet kapatılıyor
RS.Close
'Alt Form Güncelleniyor
Me.Altform.Requery
'-----------------------------------------------------------------------
End Sub
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Konfüçyüs
Güzel kod.Temiz,sade..
denemedım ama tşk ederım. denedımmı tekrar teşekkür ederım saol paylaşım için
denedımde örnek süper olmuş tekrar tşk ederım.. çok işime yarayacak
denedımde örnek süper olmuş tekrar tşk ederım.. çok işime yarayacak
Son Düzenleme: 10/04/2009, 21:25, Düzenleyen: alpteqinakbas.
Konuyu Okuyanlar: 1 Ziyaretçi