Skip to main content

AccessTr.neT


text kutusundaki sayıya göre alt tabloda kayıt açma

alpteqinakbas
alpteqinakbas
3
3091

text kutusundaki sayıya göre alt tabloda kayıt açma

Çözüldü #1
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ı???
.rar vt5.rar (Dosya Boyutu: 12,11 KB | İndirme Sayısı: 10)
Cevapla
Çözüldü #2
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 Img-grin
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

.rar OtomatikKayit_Seruz.rar (Dosya Boyutu: 17,85 KB | İndirme Sayısı: 24)
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #3
Güzel kod.Temiz,sade..
Cevapla
Çözüldü #4
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
Son Düzenleme: 10/04/2009, 21:25, Düzenleyen: alpteqinakbas.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da