Arşiv Oluşturmak,Verilerin Arşive Gönderilmesi-Mevcut Tablodan Silinmesi??

1 2
25/02/2015, 13:34

mehami

Merhaba değerli forum üyeleri;

Yapmaya çalıştığım programda arşivlemeye ihtiyaç var..

1) frm_hepsi adlı formumuzda bulunan bir buton (arşive gönder butonu) yardımı ile ekranda bilgileri açık olan öğrencinin bilgilerini ARSİV_TABLOSUNA atmak istiyorum..
Arşiv tablosuna atıldığı anda tbl_hepsi adlı asıl tablodan da silinmesi gerekmekte..

2) Arşivdeki verileri zaman zaman ihtiyaç duydukça FRM_ARSİV de bulunan buton(güncel dosyalar arasına gönder butonu) vasıtasıyla tbl_hepsi adlı asıl tablomuza getirmek istiyorum..Asıl tabloya gelen veri bu defa arşivden silinecek..

Kısaca tablolar arası veri alış-verişi olacak..Dün geceden bu saate uğraşıyorum,çeşitli örnekleri inceledim ama butonların tıklandığında olay yordamına yazmam gereken kodlarda hata yapıyorum sanırım bir türlü beceremedim..

Sizlerden önerilerinizi bekliyor saygılar sunuyorum..
25/02/2015, 15:40

mehami

INSERT INTO ARSİV_TABLOSU (ID, adsoyad, tc, dosyano, sagliktani, ekyetersizlik, egitseltanisi, egitselokul_karari, okulu, okulcinsi, sinif, cinsiyet, tel, adres, destekegitim, destekraporu_bitis, destek_1ayonce, skr_1aySonrabitecek, skr_bitis, uygulanantest, testor, randevu, degerlendiren, kaynastirmagrubu, ilkdefa, kurula_gonder, kurul_no, kurul_tarihi, randevu_saati, dogum_tarihi, rapor_durumu)
SELECT
ID, adsoyad, tc, dosyano, sagliktani, ekyetersizlik, egitseltanisi, egitselokul_karari, okulu, okulcinsi, sinif, cinsiyet, tel, adres, destekegitim, destekraporu_bitis, destek_1ayonce, skr_1aySonrabitecek, skr_bitis, uygulanantest, testor, randevu, degerlendiren, kaynastirmagrubu, ilkdefa, kurula_gonder, kurul_no, kurul_tarihi, randevu_saati, dogum_tarihi, rapor_durumu,
FROM tbl_hepsi WHERE ID=''



frm_hepsi adlı formumda bulunan arşive gönder butonun tıklandığında olay yordamına böyle bir kod hazırladım bakındığım örneklerden yola çıkarak ama hata veriyor
Bu sorunu nasıl halledeceğim lütfen öneri bekliyorum..

Saygılar..
25/02/2015, 16:23

atoz112

sayın mehami,


bahsettiğiniz talebinize yönelik olarak aşağıdaki bilgilerin yeterli olacağı kanısındayım.

öncelikle,arşiv niteliğinde tablo oluşturmak için,site içerisinde arama yapmanız sonucu elde edebileceğiniz bilgileri ve örneklerini barındıran konuları incelemeniz size fikir verebilmesi ve bunları uygulamanıza yönelik verimli olacaktır.kısa bir bilgilendirme amacı ile,arşiv tablosu için,yapılması gerekenler ise;

AŞAMA-1:
kayıtların bulunduğu tablodaki alanların içerisinden hangi alanların oluşturulacak olan arşiv tablosunda yer alacağının (ya da,tercihe göre tüm alanlar da olabilir) belirlenerek bu arşiv tablosunun hazırlanması gerekmektedir.

AŞAMA-2:
aşağıdaki kodlama kalıbından hareket ile;gerekli kısımlardaki alan bilgilerini,kendi ilgili alan bilgilerinizi yazarak uygun bir düzenlemede bulunmalısınız.

Kod:
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False

'eski tablodan arşiv tablosuna aktarılması için
DoCmd.RunSQL "INSERT INTO arsiv_tablosu (alan1, alan2, alan3) SELECT eski_tablo.alan1, eski_tablo.alan3, eski_tablo.alan3 FROM eski_tablo WHERE (((eski_tablo.ID)=me.ID))"


'eski tablodan ilgili kaydın silinmesi için
DoCmd.RunSQL "DELETE * FROM eski_tablo WHERE (((eski_tablo.ID)=me.ID))"
DoCmd.SetWarnings True

me.requery
me.refresh

son olarak,benzer işlemler kullanılarak,diğer sorunuza cevap olması adına,arşiv tablosundan
eski tabloya aktarımı da sağlayabilirsiniz.bilginize.

iyi çalışmalar,saygılar.
25/02/2015, 16:57

mehami

(25/02/2015, 16:23)atoz112 yazdı: sayın mehami,


bahsettiğiniz talebinize yönelik olarak aşağıdaki bilgilerin yeterli olacağı kanısındayım.

öncelikle,arşiv niteliğinde tablo oluşturmak için,site içerisinde arama yapmanız sonucu elde edebileceğiniz bilgileri ve örneklerini barındıran konuları incelemeniz size fikir verebilmesi ve bunları uygulamanıza yönelik verimli olacaktır.kısa bir bilgilendirme amacı ile,arşiv tablosu için,yapılması gerekenler ise;

AŞAMA-1:
kayıtların bulunduğu tablodaki alanların içerisinden hangi alanların oluşturulacak olan arşiv tablosunda yer alacağının (ya da,tercihe göre tüm alanlar da olabilir) belirlenerek bu arşiv tablosunun hazırlanması gerekmektedir.

AŞAMA-2:
aşağıdaki kodlama kalıbından hareket ile;gerekli kısımlardaki alan bilgilerini,kendi ilgili alan bilgilerinizi yazarak uygun bir düzenlemede bulunmalısınız.



Kod:
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False

'eski tablodan arşiv tablosuna aktarılması için
DoCmd.RunSQL "INSERT INTO arsiv_tablosu (alan1, alan2, alan3) SELECT eski_tablo.alan1, eski_tablo.alan3, eski_tablo.alan3 FROM eski_tablo WHERE (((eski_tablo.ID)=me.ID))"


'eski tablodan ilgili kaydın silinmesi için
DoCmd.RunSQL "DELETE * FROM eski_tablo WHERE (((eski_tablo.ID)=me.ID))"
DoCmd.SetWarnings True

me.requery
me.refresh

son olarak,benzer işlemler kullanılarak,diğer sorunuza cevap olması adına,arşiv tablosundan
eski tabloya aktarımı da sağlayabilirsiniz.bilginize.

iyi çalışmalar,saygılar.

Sayın Atoz112 İlginize çok tşk ederim;
Bulunmuş  olduğunuz öneriler ve vermiş olduğunuz örnek kodlamadan hareketle şöyle bir kod oluşturdum..Ancak hata vermekte yine..

tbl_hepsi adlı tabloyu kopyala-yapıştır ile ARSİV_TABLOSU olarak kayıt ettim..Yani tüm alanlar bu sayede  eşit-aynı sırada ve aynı isimde oldu..

Hazırladığım kod bu;
DoCmd.RunCommand acCmdSaveRecord

DoCmd.SetWarnings False
 
DoCmd.RunSQL "INSERT INTO ARSİV_TABLOSU (adsoyad,tc,dosyano,sagliktani,ekyetersizlik, egitseltanisi,egitselokul_karari,okulu,okulcinsi,sinif,cinsiyet,tel,adres,destekegitim, destekraporu_bitis,destek_1ayonce,skr_1aySonrabitecek,skr_bitis,uygulanantest,testor,randevu, degerlendiren,kaynastirmagrubu,ilkdefa,kurula_gonder,kurul_no,kurul_tarihi,randevu_saati, dogum_tarihi,rapor_durumu)
SELECT tbl_hepsi.adsoyad, tbl_hepsi.tc, tbl_hepsi.dosyano, tbl_hepsi.sagliktani, tbl_hepsi.ekyetersizlik, tbl_hepsi.egitseltanisi, tbl_hepsi.egitselokul_karari, tbl_hepsi.okulu, tbl_hepsi.okulcinsi, tbl_hepsi.sinif, tbl_hepsi.cinsiyet, tbl_hepsi.tel, tbl_hepsi.adres, tbl_hepsi.destekegitim, tbl_hepsi. destekraporu_bitis, tbl_hepsi.destek_1ayonce, tbl_hepsi.skr_1aySonrabitecek, tbl_hepsi.skr_bitis, tbl_hepsi.uygulanantest, tbl_hepsi.testor, tbl_hepsi.randevu, tbl_hepsi. degerlendiren, tbl_hepsi.kaynastirmagrubu, tbl_hepsi.ilkdefa, tbl_hepsi.kurula_gonder, tbl_hepsi.kurul_no, tbl_hepsi.kurul_tarihi, tbl_hepsi.randevu_saati, tbl_hepsi. dogum_tarihi, tbl_hepsi.rapor_durumu

FROM tbl_hepsi WHERE (((tbl_hepsi.ID)=me.ID))"
 
 
DoCmd.RunSQL "DELETE * FROM tbl_hepsi WHERE (((tbl_hepsi.ID)=me.ID))"
DoCmd.SetWarnings True
 
me.requery
me.refresh
 

BU kodu frm_hepsi adlı formumda bulunan arşive gönder butonunun tıklandığında olay yordamına yapıştırıyorum..

Nerede hata yapmaktayım??Yardımlarınızı bekliyor saygılar sunuyorum..

NOT:Burada boşluklar çıktı ama asıl kodda(yapıştıdığım kodda) bu boşluk yok..


26/02/2015, 14:04

atoz112

sayın mehami,


öncelikle bir hususu belirtmekte fayda olduğu kanısındayım.daha önceki konularınızda da bahsi geçtiği üzere;
tablo,form,sorgu ve tablolarınızdaki alanlarınızın isimlendirilmelerini mümkün mertebe kısa ve öz ifadeler olarak tanımlayınız.böylece,herhangi bir (örneğinizdeki gibi) Sql sorgu ifadeleri yazmak zorunda kaldığınızda hata durumlarını aza indirgemek üzere fazla satır işgali söz konusu olmaz.

lütfen,çalışmalarınızda (aslında daha en başında) henüz oluşturmadan önce bunlara riayet etmeniz ilerideki sorunların çözümü için katkı sağlayacaktır.

son olarak,nasıl bir hata aldığınızı belirtmemişsiniz.bu nedenle,aldığınız hatayı gösteren ekran görüntüsünü de eklerseniz daha verimli bilgilendirmeler almanızı sağlamış olursunuz.yazım hatası da olabilir.noktalama veya alan adı tanımlamaları da olabilir ya da denetim adı hatalı da olabilir..çözüm önerilerini aza indirgemek için,hata bilgilerini de paylaşmanız iyi olacaktır.bilginize.

iyi çalışmalar,
saygılar.
26/02/2015, 14:20

mehami

RESİM 1= BU KODU BUTONUN OLAY YORDAMINA YAPIŞTIRIYORUM..

RESİM 2=ARŞİVE GÖNDER BUTONUNA BASIYORUM ANINDA 3.RESİMDEKİ HATAYI VERİYOR..


RESİM 3=BÖYLE BİR HATA ALIYORUM VE ARŞİVE GİTMİYOR..

1 2