Skip to main content

AccessTr.neT


Bağlı Tablonun Sonraki Kaydına Veri Atamak

Bağlı Tablonun Sonraki Kaydına Veri Atamak

Çözüldü #1
Merhaba arkadaşlar,
Ekte göreceğiniz üzere kendi çapımda bir sözlük yapmaya çalışıyorum.
Fakat sorunum şu, bir türkçe kelimenin birden fazla ingilizce karşılığı var. Aynı şekilde bir ingilizce kelimenin de birden fazla türkçe karşılığı olabiliyor.
Yapmak istediğim Türkçe kelimenin ingilizce karşılıklarını girdiğim anda, ilgili ingilizce kelimelerin türkçe karşılıklarının otomatik olarak oluşturulması.
Bunu yapmak için (alt tabloları olan 2'şer tablo) toplam 4 tablo oluşturdum.

Bir kelimenin farklı karşılıklarını ilişkilendirebilmek için o kelimeye ait alt tablonun "bag" alanlarından faydalanmayı düşündüm. 
Fakat kodu yazmakta sorun yaşadım.
Şimdi ne yazmak istediğim kodu örnek üzerinden anlatayım.


f_turkce forumu açtım.
Türkçe olarak "Fırın" kelimesini girdim.
İngilizce karşılığını girmek için alt forma geçtim.
Burada önce fırın kelimesinin karşılıklarından biri olan "Owen" yazdım. 
Bunu yazdıktan sonra "Owen" kelimesinin tablodaki otomatik numarasının karşılığı olan 32 verisinin,  [t_tur] tablosunda yer alan fırın kelimesinin alt tablosunda (yeni kayıt oluşturarak) burada yer alan [tur_bag] alanına yazdırılmasını istiyorum.
Devam edelim, yine fırın kelimesinin alt forumuna diğer bir karşılığı olan "Bakery" yazdım.
Yine aynı şekilde Bakery'e ait olan 34 verisinin [t_tur] tablosundaki fırın kelimesinin alt tablosunda bir kayıt daha oluşturarak, bu kaydın [tur_bag] alanına yazdırılmasını istiyorum.

Böylece ingilizce formunu açtığımda owen ve bakery kelimelerinin karşısında fırın kelimesini görmüş olacağım.

Yeni kayıt oluşturma kısmı önemli çünkü daha önce ilgili kelimenin altına kaydedilmiş olan verinin üzerine yazılmasını istemiyorum. Yeni kayıt oluşturularak girilen bütün verilerin korunmasını istiyorum.


Yardımlarınız için şimdiden teşekkür ederim.
.rar mehmetsozluk.rar (Dosya Boyutu: 154,88 KB | İndirme Sayısı: 10)
Cevapla
#2
(07/02/2018 17:16)mehmetb84 Adlı Kullanıcıdan Alıntı: [t_tur] tablosundaki fırın kelimesinin alt tablosunda bir kayıt daha oluşturarak

(07/02/2018 17:16)mehmetb84 Adlı Kullanıcıdan Alıntı: [t_tur] tablosunda yer alan fırın kelimesinin alt tablosunda (yeni kayıt oluşturarak)

Fırın kelimesinin alt tablosu nedir???
Cevapla
#3
(08/02/2018 10:43)ozanakkaya Adlı Kullanıcıdan Alıntı:
(07/02/2018 17:16)mehmetb84 Adlı Kullanıcıdan Alıntı: [t_tur] tablosundaki fırın kelimesinin alt tablosunda bir kayıt daha oluşturarak
(07/02/2018 17:16)mehmetb84 Adlı Kullanıcıdan Alıntı: [t_tur] tablosunda yer alan fırın kelimesinin alt tablosunda (yeni kayıt oluşturarak)

Fırın kelimesinin alt tablosu nedir???
  
Pardon yanlış ifade etmişim,ilk alıntının doğrusu;
[ t_turust] tablosundaki fırın kelimesinin alt tablosu olan [t_tur] tablosunda bir kayıt daha oluşturarak
ikincisinin doğrusu;
[t_turust] tablosunda yer alan fırın kelimesinin alt tablosunda ( [t_tur] ) yeni kayıt oluşturarak

şeklinde olacak.
Cevapla
#4
Alt formdaki "engust_word" isimli açılan kutunun güncelleştirme sonrasında olayındaki kodu iptal et.

Alt formun güncelleştirme sonrasında olayına aşağıdaki kodu ekle.

Visual Basic Code
Private Sub Form_AfterUpdate()

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

GSorgum = "SELECT t_tur.*, t_engust.engust_oto, t_engust.engust_word, [engust_oto] & [engust_word] & [tur_bagana] AS aranan FROM t_tur INNER JOIN t_engust ON t_tur.tur_bag = t_engust.engust_oto;"

Set dbs = CurrentDb

Set rs = dbs.OpenRecordset(GSorgum, dbOpenDynaset)

rs.FindFirst "[aranan] = '" & eng_oto & engust_word & eng_bag & "'"

    If rs.NoMatch Then
        MsgBox (engust_word & "Yok, eklenecek")
        rs.AddNew
        rs!tur_tip = Me.eng_type
        rs!tur_bag = Me.eng_oto
        rs!tur_bagana = Me.eng_bag
        rs!tur_tarih = Forms!f_turkce!tur_tarih
        rs.Update
    Else
    
        MsgBox (rs!engust_word & " var, yenilenecek")
        rs.Edit
        rs!tur_tip = Me.eng_type
        rs!tur_bag = Me.eng_oto
        rs!tur_bagana = Me.eng_bag
        rs!tur_tarih = Forms!f_turkce!tur_tarih
        rs.Update
    End If

        rs.Close
        Set rs = Nothing
        Set dbs = Nothing

End Sub
Cevapla
#5
Bu kod t_engust tablosuna ilgili kelimeyi ekliyor.
Fakat benim istediğim; ilgili kelime üst tabloda [t_turust] yoksa buraya eklenmesi fakat bu kelime varsa ilgili bağlantının bu kelimeye ait alt tabloya eklenmesi.

Yani fırın kelimesi yoksa eklensin, eğer varsa da alt tablosu olan [t_tur]'e yeni kayıt eklensin istiyorum. Özür dilerim bu detayı atlamışım.

Bu arada sizin yazdığınız kodu bu talebim doğrultusunda uyarlamaya çalışırken şöyle bir sorunla karşılaştım, kodda bulunan [varmı] sorgusu her halukarda eklenen kaydı yeni kayıt olarak görüyor. Mükererrer kaydı tespit ederken bir sorun yaşıyorum o yüzden.
Son Düzenleme: 12/02/2018, 14:39, Düzenleyen: mehmetb84.
Cevapla
#6
merhaba, eklediğiniz son örneğe göre örneklendirme yapabilir misin, mesela x kaydı olunca y tablosuna şu verileri aktarmalı gibi. Tablolar karışık olduğu için malesef işin içinden çıkamadım.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task