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

1 2
15/03/2020, 17:38

Oğuz Türkyılmaz

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. 


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
15/03/2020, 21:55

ozanakkaya

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.



16/03/2020, 01:03

Oğuz Türkyılmaz

(15/03/2020, 21:55)ozanakkaya yazdı: 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.




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.
16/03/2020, 11:23

ozanakkaya

17/03/2020, 02:48

Oğuz Türkyılmaz

(16/03/2020, 11:23)ozanakkaya yazdı: @"accessdelisi"nin Üst Alanları Bağla - Alt Alanları Bağla Özelliği Hakkında

Konuya erişemiyorum...


17/03/2020, 13:34

access_delisi

(17/03/2020, 02:48)Oğuz Türkyılmaz yazdı:
(16/03/2020, 11:23)ozanakkaya yazdı: @"accessdelisi"nin Üst Alanları Bağla - Alt Alanları Bağla Özelliği Hakkında

Konuya erişemiyorum...


Konuda ismim gecmis, linkte bir hata goremedim
1 2