Skip to main content

AccessTr.neT


veri tabanında kayıttan başka kayda kopyalama

veri tabanında kayıttan başka kayda kopyalama

Çözüldü #7
seruz hocam merhaba,

öncelikle teşekkür ederim yaptığınız çalışma gayet güzel çalıştı. ancak bunu kafamızdaki gerçek projeye uyarlarken hep sorun yaşadık (3113; field not updateable)

Ekte gerçek projeyi, sizden aldığımız kodu da içerecek şekilde bulabilirsiniz. sorunumuzu çözebilirseniz çok sevineceğiz zira bu hata bizi resmen delirtti.

LCN1 listboxta F00 içindeki veriyi diğer LCNlere kopyalamk istiyoruz. bunu yaparken de aşağıdaki 14 page içinde ayrı ayrı bu işlemi yapmamız gerekiyor. her bir page içindeki history kısımlarının ise kopyalama işleminden ayrı tutulması gerekiyor.

yardımlarınızı bekliyoruz. şimdiden çok çok teşekkürler..
.rar aey_H2320 Status Report01.rar (Dosya Boyutu: 135,15 KB | İndirme Sayısı: 3)
Cevapla
Çözüldü #8
Her zaman ısrarla söylediğimiz bir yanlıştan kaynaklanıyor : "Alan adlarında boşluk kullanmak"

Detaylı bilgiyi aşağıdaki konudan okuyabilirsiniz.
Yapılmaması Gereken Ölümcül Hatalar

Sizin tablodaki alan adları arasında boşluk var, boşluk varsa update vb. Sql komutlarında alan adlarını [] içinde kullanmak zorundasınız.

Yanlış --> Doğru
Validation_reqstatus ->> [Validation_req status]
Validation_reqremarks --> [Validation_req remarks]
Validation_reqMtaction --> [Validation_req Mt action]
Validation_reqMtactionremarks --> [Validation_req Mt action remarks]

Ayrıca RunSQL'e ekleyeceğimiz alan sayı değilde metin olduğu için tek tırnakları ilave edecek şekilde değişmesi gerekiyor.

Kod:
DoCmd.RunSQL "Update ref_table Set [Validation_req status]=forms!form1.Validation_reqstatus, [Validation_req remarks]=forms!form1.Validation_reqremarks, [Validation_req Mt action]=forms!form1.Validation_reqMtaction, [Validation_req Mt action remarks]=forms!form1.Validation_reqMtactionremarks Where LCN='" & Me.List205.Column(0, Secilen_LCN) & "'"
Örnek ektedir.
.rar aey_H2320 Status Report01_Seruz.rar (Dosya Boyutu: 92,78 KB | İndirme Sayısı: 15)
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #9
seruz hocam valla binlerce teşekkür. bizim de aklımıza geldi bu sorun ama bir türlü çözememiştik.

hocam, vaktiniz varsa bu veritabanı için son bir uygulama ihtiyacımız daha var. buna da yardımcı olabilirseniz bu gece deliksiz bir uyku çekebiliriz Img-grin

aynı db içinde, farketmişsinizdir save to history şeklinde butonlar var. bunlarla, butonların hizasındaki alanın üstünde yer alan iki alanın eklenmesi yaplıyor.

bizim isteğimiz şu: sizin yaptığınız kopyalama uygulaması sonunda, örneğin F00 LCNi içindeki ilgili alanları F00AA, F00AC.. içine kopyaladık diyelim. bu kopyalama uygulamasına ilave bir kod yazarak, kopyalama sonunda ilgili LCNler için save to history komutu da çalıştırılabilir mi? bu şekilde, F00'ı F00AA'ya kopyalayacak ve hemen ardından kopyaladığı verileri history alanında birleştirecek.

hocam umarım anlatabilmişimdir. yardımlarınız için tekrar tekrar teşekkürler.
Cevapla
Çözüldü #10
Kusura bakmayın, dün fırsat bulamadım ancak bugün bakabildim.
Umarım isteğinizi doğru anlamışımdır.

Alıntı:bizim isteğimiz şu: sizin yaptığınız kopyalama uygulaması sonunda, örneğin F00 LCNi içindeki ilgili alanları F00AA, F00AC.. içine kopyaladık diyelim. bu kopyalama uygulamasına ilave bir kod yazarak, kopyalama sonunda ilgili LCNler için save to history komutu da çalıştırılabilir mi? bu şekilde, F00'ı F00AA'ya kopyalayacak ve hemen ardından kopyaladığı verileri history alanında birleştirecek.

LCN'nin kopyalamadan önceki eski bilgilerinin History alanında saklanmasını istiyorsunuz sanırım.

Ben sadece "Valid.Req." kısmındaki "Validation_req remarks History:" (Command172)
ve "Validation_req Mt action remarks history:" (Command173) komutlarındakileri yaptım.
İnceleyip mantığını anlarsanız, gerisini siz tamamlayabilirsiniz.

Kod:
Private Sub Command207_Click()
'On Error Resume Next
Dim Secilen_LCN

    'Uyarı mesajları kapatılıyor
    DoCmd.SetWarnings False

    'Listeden seçilenler tek tek işleme alınıyor
    For Each Secilen_LCN In Me.List205.ItemsSelected

        'Önce üstüne kopyalanacak olan LCN'nin History Bilgileri kaydediliyor
        'Command172
        'Me.Validation_reqremarksHistory = Me.Validation_reqremarksHistory & "(Date of Record : " & Date & " / Statu: " & " " & Me.Validation_reqstatus & " " & " / Remark: " & Me.Validation_reqremarks & ") ___ "
        DoCmd.RunSQL "Update ref_table Set [Validation_req remarks History]=[Validation_req remarks History] & '(Date of Record : " & Date & " / Statu: ' & [Validation_req status] & ' ' & ' / Remark: ' & [Validation_req remarks] & ') ___ ' Where LCN='" & Me.List205.Column(0, Secilen_LCN) & "'"
        
        'Command173_Click()
        'Me.Validation_reqMtactionremarkshistory = Me.Validation_reqMtactionremarkshistory & "(Date of Record : " & Date & " / Statu: " & " " & Me.Validation_reqMtaction & " " & " / Remark: " & Me.Validation_reqMtactionremarks & ") ___ "
        DoCmd.RunSQL "Update ref_table Set [Validation_req Mt action remarks history]=[Validation_req Mt action remarks history] & '(Date of Record : " & Date & " / Statu: ' & [Validation_req Mt action] & ' ' & ' / Remark: ' & [Validation_req Mt action remarks] & ') ___ ' Where LCN='" & Me.List205.Column(0, Secilen_LCN) & "'"

        'Formda seçilen LCN'nin bilgileri seçilen LCN'lere kopyalanıyor
        DoCmd.RunSQL "Update ref_table Set [Validation_req status]=forms!form1.Validation_reqstatus, [Validation_req remarks]=forms!form1.Validation_reqremarks, [Validation_req Mt action]=forms!form1.Validation_reqMtaction, [Validation_req Mt action remarks]=forms!form1.Validation_reqMtactionremarks Where LCN='" & Me.List205.Column(0, Secilen_LCN) & "'"
        
        'Listedeki seçim kaldırılıyor
        Me.List205.Selected(Secilen_LCN) = False

    Next Secilen_LCN
    
    'Liste güncelleniyor
    Me.List205.Requery

    'Uyarı mesajları açılıyor
    DoCmd.SetWarnings True

End Sub

.rar aey_H2320 Status Report01_Seruz2.rar (Dosya Boyutu: 94,66 KB | İndirme Sayısı: 8)
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #11
seruz hocam selam,

elinize sağlık bir türlü yapamıştım. aynı şeyleri yaptığımı düşünüyordum ama hep hata veriyordu. (gerçi siz uyarmıştınız dün ""Ayrıca RunSQL'e ekleyeceğimiz alan sayı değilde metin olduğu için tek tırnakları ilave edecek şekilde değişmesi gerekiyor."" ama yine farketmemişim, çift tırnak koydugumdan olmuş hatalar.. bunları öğrenmem gerekecek.

sizin yaptığınız kodlama benim istediğimi %90 verdi, sadece history'ye kopyaladıktan sonra atmasını istediğimden do.cmd komutların yerini değiştirdim (1.yi sona aldım).

hocam binlerce teşekkür tekrar, saygılar..
Cevapla
Çözüldü #12
Rica ederim, kolay gelsin.

Olayın mantığını anlamanız önemli. Kodları istediğiniz gibi değiştirebilirsiniz tabii ki.

İleride kodlarda yaşayabileceğiniz problemleri daha kolay çözebilmek ve kodlara hakim olabilmek için, kodları adım adım çalıştırmayı ve yazdığınız kodları ve değişkenlerin durumunu kontrol etmeyi öğrenmelisiniz.

Bunun için aşağıdaki mesajdaki anlatımı inceleyip, öğrenmeye çalışın.

Kodları Adım Adım Çalıştırma
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
Task