Skip to main content

AccessTr.neT


Alt Form Benzeri Veri Giriş Uygulaması

Alt Form Benzeri Veri Giriş Uygulaması

Çözüldü #1
Merhabalar,
Ekli örneğimde 3 adet tablo ve bu tabloların formları var. Tablo ilişkilerinden de görüleceği üzere T1-T3 arası bire-çok, T1-T2 arası bire-bir ilişkili. Normalde hepsini F1 formu altında altformF2, altformF3 şeklinde konuşlandırdığımda tüm formlara veri girişinde problem yaşamıyorum. Çünkü F1 deki kimlik bilgisi otomatik olarak diğerlerine de yansıyor. Ancak örneğimdeki gibi F1 formundaki "butonlar yardımıyla" F2 ve F3'e gidersem veri girişi yapamıyorum. Çünkü F1 deki kimlik bilgisi o formlara taşınmıyor. Neyi yanlış yapıyorum? Teşekkürler..
.zip Alt_Form_Benzeri.zip (Dosya Boyutu: 38,25 KB | İndirme Sayısı: 8)
Cevapla
#2
Komut11'in tıklandığında olayındaki kodu aşağıdaki ile değiştirin.

Dim GSorgum As String
Dim dbs As DAO.Database
Dim rs As DAO.Recordset

GSorgum = "SELECT * FROM Tablo2;"
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset(GSorgum, dbOpenDynaset)

rs.FindFirst "[Kimlik_T2] = " & Kimlik_T1
   If rs.NoMatch Then
       rs.AddNew
       rs!Kimlik_T2 = Me.Kimlik_T1
       rs.Update
   End If
       rs.Close
       Set rs = Nothing
       Set dbs = Nothing


DoCmd.OpenForm "F2", acNormal, , "[Kimlik_T2]=" & Me.Kimlik_T1
Cevapla
#3
(18/09/2018, 15:22)ozanakkaya yazdı: Komut11'in tıklandığında olayındaki kodu aşağıdaki ile değiştirin.

Dim GSorgum As String
Dim dbs As DAO.Database
Dim rs As DAO.Recordset

GSorgum = "SELECT * FROM Tablo2;"
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset(GSorgum, dbOpenDynaset)

rs.FindFirst "[Kimlik_T2] = " & Kimlik_T1
   If rs.NoMatch Then
       rs.AddNew
       rs!Kimlik_T2 = Me.Kimlik_T1
       rs.Update
   End If
       rs.Close
       Set rs = Nothing
       Set dbs = Nothing


DoCmd.OpenForm "F2", acNormal, , "[Kimlik_T2]=" & Me.Kimlik_T1

Merhaba Ozan Bey,

Teşekkürler. Ancak bu çözüm, benim bilgi sınırlarımı aştı. Daha basit olarak şöyle bir çözüm buldum forumlarda; Örneğin Git_F2 butonuna bastığımda açılan F2 formunun "yüklendiğinde" olay yordamına ;

Kod:
Me.Kimlik_T2.DefaultValue = Forms.F1.Kimlik_T1
kodunu ekledim ve çözüldü. Benim gibi bir acemi için çok daha kısa ve anlaşılır. Ancak şunu da belirtmeliyim ki gerek bendeki çözümde gerekse sizin çözümünüzde eğer F1 formunda "yeni kayıt" oluşturmuş ama henüz veri girmemişsem ve bu esnada da Git_F2 ya da Git_F3 butonunu tıkladıysam doğal olarak hata verip debug ekranı açılıyor. Bunu da F1'e veri girilmediyse butonları deaktive ederek çözmeyi uygun gördüm. Daha efektif çözüm varsa buna da açığım tabiki.
Cevapla
#4
Merhaba, Komut11'in tıklandığında olayındaki kodu

If Me.NewRecord = False Then

DoCmd.OpenForm "F2", acNormal, , "[Kimlik_T2]=" & Me.Kimlik_T1

End If

kodu ile değiştirirseniz F1'de yeni kayıtta F2 formu açılmaz.
Cevapla
Thumbs Up #5
(20/09/2018, 11:33)ozanakkaya yazdı: Merhaba, Komut11'in tıklandığında olayındaki kodu

If Me.NewRecord = False Then

DoCmd.OpenForm "F2", acNormal, , "[Kimlik_T2]=" & Me.Kimlik_T1

End If

kodu ile değiştirirseniz F1'de yeni kayıtta F2 formu açılmaz.

Teşekkürler, işime yarayacak..
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task