Skip to main content

AccessTr.neT


Alt Formları Ado İle Kayıt Yapan Forma Bağlama Hakkında

Oğuz Türkyılmaz
Oğuz Türkyılmaz
6
761

Alt Formları Ado İle Kayıt Yapan Forma Bağlama Hakkında

Çözüldü #1
Merhaba 
F_Sporcular Formum da 2 adet Alt formum var. Form ado ile kayıt yaparken alt formlara girilen kayıtlarında F_Sporcular formundakı TC Numarası gırılmıs sporcuya bağlanmasını ve F_Sporcular Formunda kayıtlar arasında gezerken alt formlarda Formdaki sporcuya ait bilgilerin gelmesini sağlamaya çalışıyorum. Bu bağlantı nasıl yapılabilir. Yardımlarınız için teşekkürler. 
[Resim: do.php?img=9862]

Visual Basic Code
Private Sub Kaydet_BTN_Click()

If Me.Lisans_TXT = "" Or IsNull(Me.Lisans_TXT) Or IsNull(Me.TcNo_TXT) Or Me.TcNo_TXT = "" Or IsNull(Me.AdSoyad_TXT) Or Me.AdSoyad_TXT = _
"" Or Me.DogumTarihi_TXT = "" Or IsNull(Me.DogumTarihi_TXT) Or Me.LisansNo_TXT = "" Or IsNull(Me.LisansNo_TXT) Then

If IsNull(Me.AdSoyad_TXT) Or Me.AdSoyad_TXT = "" Then
   MsgBox "DİKKAT" & vbCrLf & "Lütfen Sporcunun Ad Soyad bilgisini giriniz!. " & vbCrLf & "Kayit işlemi için bu bilginin girilmesi zorunludur", vbCritical
   Me.AdSoyad_TXT.SetFocus
   
   Exit Sub
End If

If IsNull(Me.TcNo_TXT) Or Me.TcNo_TXT = "" Then
   MsgBox "DİKKAT" & vbCrLf & "Lütfen Sporcunun Tc kimlik numarasını giriniz!. " & vbCrLf & "Kayit işlemi için bu bilginin girilmesi zorunludur", vbCritical
   Me.TcNo_TXT.SetFocus
   
   Exit Sub
End If

If IsNull(Me.DogumTarihi_TXT) Or Me.DogumTarihi_TXT = "" Then
   MsgBox "DİKKAT" & vbCrLf & "Lütfen Sporcunun doğum tarihini giriniz!. " & vbCrLf & "Kayit işlemi için bu bilginin girilmesi zorunludur", vbCritical
   Me.DogumTarihi_TXT.SetFocus
   
   Exit Sub
End If

If IsNull(Me.Lisans_TXT) Or Me.Lisans_TXT = "" Then
   MsgBox "DİKKAT" & vbCrLf & "Lütfen Sporcunun lisans bilgisini Giriniz!. " & vbCrLf & "Kayit işlemi için bu bilginin girilmesi zorunludur", vbCritical

   Me.Lisans_TXT.SetFocus
   
   Exit Sub
End If

If IsNull(Me.LisansNo_TXT) Or Me.LisansNo_TXT = "" Then
   MsgBox "DİKKAT" & vbCrLf & "Lütfen Sporcunun lisans no bilgisini giriniz!. " & vbCrLf & "Kayit işlemi için bu bilginin girilmesi zorunludur", vbCritical

   Me.LisansNo_TXT.SetFocus
   
   Exit Sub
End If

Else

If MsgBox("Girdiğiniz veriler kaydedilecektir, Onaylıyormusunuz ", vbExclamation + vbYesNo, "Dikkat") = vbNo Then Exit Sub

Dim rstkayit As ADODB.Recordset
Dim strSQL As String

strSQL = "SELECT * FROM T_Sporcular"
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
             .Find "[TcNo]=" & "'" & Me![TcNo_TXT] & "'"
            If Not rstkayit.EOF Then
                
                .Fields("AdSoyad") = Me.AdSoyad_TXT
                .Fields("TcNo") = Me.TcNo_TXT
                .Fields("Lisans") = Me.Lisans_TXT
                .Fields("LisansNo") = Me.LisansNo_TXT
                .Fields("LisansVize") = Me.LisansVize_TXT
                .Fields("Gsm") = Me.Gsm_TXT
                .Fields("E_Mail") = Me.E_Mail_TXT
                .Fields("DogumTarihi") = Me.DogumTarihi_TXT
                .Fields("DogumYeri") = Me.DogumYeri_TXT
                .Fields("Adres") = Me.Adres_TXT
                .Fields("Ilce") = Me.Ilce_TXT
                .Fields("Sehir") = Me.Sehir_TXT
                .Fields("Cinsiyet") = Me.Cinsiyet_CBO.Column(0)
                .Fields("SosyalGuvence") = Me.SosyalGuvence_CBO.Column(0)
                .Fields("EngelYuzdesi") = Me.EngelYuzdesi_TXT
                .Fields("EngelNedeni") = Me.EngelNedeni_TXT
                .Fields("KullanilanEkipman") = Me.KullanilanEkipman_TXT
                .Fields("OgrenimDurumu") = Me.OgrenimDurumu_CBO.Column(0)
                .Fields("KanGrubu") = Me.KanGrubu_CBO.Column(0)
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Fields("Durum") = Me.Durum_CBO.Column(0)
                .Update
                
               Else
               
                .AddNew
                .Fields("AdSoyad") = Me.AdSoyad_TXT
                .Fields("TcNo") = Me.TcNo_TXT
                .Fields("Lisans") = Me.Lisans_TXT
                .Fields("LisansNo") = Me.LisansNo_TXT
                .Fields("LisansVize") = Me.LisansVize_TXT
                .Fields("Gsm") = Me.Gsm_TXT
                .Fields("E_Mail") = Me.E_Mail_TXT
                .Fields("DogumTarihi") = Me.DogumTarihi_TXT
                .Fields("DogumYeri") = Me.DogumYeri_TXT
                .Fields("Adres") = Me.Adres_TXT
                .Fields("Ilce") = Me.Ilce_TXT
                .Fields("Sehir") = Me.Sehir_TXT
                .Fields("Cinsiyet") = Me.Cinsiyet_CBO.Column(0)
                .Fields("SosyalGuvence") = Me.SosyalGuvence_CBO.Column(0)
                .Fields("EngelYuzdesi") = Me.EngelYuzdesi_TXT
                .Fields("EngelNedeni") = Me.EngelNedeni_TXT
                .Fields("KullanilanEkipman") = Me.KullanilanEkipman_TXT
                .Fields("OgrenimDurumu") = Me.OgrenimDurumu_CBO.Column(0)
                .Fields("KanGrubu") = Me.KanGrubu_CBO.Column(0)
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Fields("Durum") = Me.Durum_CBO.Column(0)
                .Update
            End If
        End With
End If

End Sub

Private Sub Form_Load()

Dim SporcuSql As String
Dim x As Integer

SporcuSql = "Select * from T_Sporcular "

   SporcuRS.Open SporcuSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If SporcuRS.RecordCount <> 0 Then
  SporcuRS.MoveFirst
    AlanDoldur
 End If
'Dim fat As Control
 '   For Each fat In Me.Form.Controls
  '      Select Case fat.ControlType
   '         Case acTextBox
    '            fat.Value = ""
     '               Case acComboBox
      '                  fat.Value = ""
       '                     Case acCheckBox
        '                        fat.Value = "0"
    '    End Select
 '   Next

 Durum_CBO = "AKTİF"

End Sub


Private Sub ilkKayit_BTN_Click()

SporcuRS.MoveFirst

AlanDoldur

Me.F_SporcuMusabakaAF.SourceObject = "T_Musabaka"
Me.F_SporcuBelgeAF.SourceObject = "T_SporcuBelge"
'Me.F_SporcuMusabakaAF.Form.RecordSource = "SELECT ID, Tarih, ,FROM  WHERE (((TcNo)=" & TcNo_TXT & "));"
'Me.F_SporcuBelgeAF.Form.RecordSource = "SELECT ID, Tarih,     FROM WHERE ((TcNo)=" & TcNo_TXT & "));"


End Sub

Private Sub OncekiKayit_BTN_Click()

If SporcuRS.AbsolutePosition = 1 Then Exit Sub

SporcuRS.MovePrevious

AlanDoldur


End Sub

Private Sub SonKayit_BTN_Click()

SporcuRS.MoveLast

AlanDoldur


End Sub

Private Sub SonrakiKayit_BTN_Click()

If SporcuRS.AbsolutePosition = SporcuRS.RecordCount Then Exit Sub

SporcuRS.MoveNext

AlanDoldur


End Sub

Sub AlanDoldur()

         
    ID_TXT = SporcuRS(0)
    Me.AdSoyad_TXT = SporcuRS(1)
    Me.TcNo_TXT = SporcuRS(2)
    Me.Lisans_TXT = SporcuRS(3)
    Me.LisansNo_TXT = SporcuRS(4)
    Me.LisansVize_TXT = SporcuRS(5)
    Me.Gsm_TXT = SporcuRS(6)
    Me.E_Mail_TXT = SporcuRS(7)
    Me.DogumTarihi_TXT = SporcuRS(8)
    Me.DogumYeri_TXT = SporcuRS(9)
    Me.Adres_TXT = SporcuRS(10)
    Me.Ilce_TXT = SporcuRS(11)
    Me.Sehir_TXT = SporcuRS(12)
    Me.Cinsiyet_CBO = SporcuRS(13)
    Me.SosyalGuvence_CBO = SporcuRS(14)
    Me.EngelYuzdesi_TXT = SporcuRS(15)
    Me.EngelNedeni_TXT = SporcuRS(16)
    Me.KullanilanEkipman_TXT = SporcuRS(17)
    Me.OgrenimDurumu_CBO = SporcuRS(18)
    Me.KanGrubu_CBO = SporcuRS(19)
    Me.Aciklama_TXT = SporcuRS(20)
    Me.Durum_CBO = SporcuRS(21)

End Sub
.rar Sporcu AF.rar (Dosya Boyutu: 137,46 KB | İndirme Sayısı: 5)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#2
Alt formların kayıt kaynağındaki tablolarda ID alanı otomatik sayı olduğu için ID alanını alt alan olarak bağlayamazsınız. Alt formlardaki metin kutuları ilişkili olduğu için ado ile ekleme yapmaya gerek yok.

Üst alanları bağla özelliğine: TcNo_TXT
Alt alanları bağla özelliğinede TcNo yazmalısın.

Üst form yani ana formun kayıt kaynağı olmadığı için üst alan-alt alan bağlama sihirbazı çalışmayacaktır.


[Resim: do.php?img=9864]
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#3
(15/03/2020 21:55)ozanakkaya Adlı Kullanıcıdan Alıntı: Alt formların kayıt kaynağındaki tablolarda ID alanı otomatik sayı olduğu için ID alanını alt alan olarak bağlayamazsınız. Alt formlardaki metin kutuları ilişkili olduğu için ado ile ekleme yapmaya gerek yok.

Üst alanları bağla özelliğine: TcNo_TXT
Alt alanları bağla özelliğinede TcNo yazmalısın.

Üst form yani ana formun kayıt kaynağı olmadığı için üst alan-alt alan bağlama sihirbazı çalışmayacaktır.


[Resim: do.php?img=9864]


Ozan Bey çok teşekkür ederim. Üst alan-alt alan bağlama ile ilgili Bıraz ayrıntı içeren okuyabileceğim bir döküman Forumda yada başka bır mecrada varmıdır.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#4
@"accessdelisi"nin Üst Alanları Bağla - Alt Alanları Bağla Özelliği Hakkında
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#5
(16/03/2020 11:23)ozanakkaya Adlı Kullanıcıdan Alıntı: @"accessdelisi"nin Üst Alanları Bağla - Alt Alanları Bağla Özelliği Hakkında

Konuya erişemiyorum...

[Resim: do.php?img=9878]
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#6
(17/03/2020 02:48)Oğuz Türkyılmaz Adlı Kullanıcıdan Alıntı:
(16/03/2020 11:23)ozanakkaya Adlı Kullanıcıdan Alıntı: @"accessdelisi"nin Üst Alanları Bağla - Alt Alanları Bağla Özelliği Hakkında

Konuya erişemiyorum...

[Resim: do.php?img=9878]

Konuda ismim gecmis, linkte bir hata goremedim
SÖZ VERİYORUM... USLU DURUCAM...
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da