Skip to main content

AccessTr.neT


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

alpteqinakbas
alpteqinakbas
3
3111

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

Çö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

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Cvp: text kutusundaki sayıya göre alt tabloda kayıt açma - Yazar: Seruz - 10/04/2009, 18:25
Task