Skip to main content

AccessTr.neT


Pasif veriyi diğer tabloya aktarmak, form üzerinden tablo seçmek

Pasif veriyi diğer tabloya aktarmak, form üzerinden tablo seçmek

#7
tam olarak istediğinizi belirtirseniz daha iyi olacaktır. örneğin: şu tablo şunlar şurada olacak tarzında. formunuza baktığımda umuyorum ki bu örnek form olduğu için böyledir, bir çok yanlışlar ve ilerleyen zamanda problemler çıkartabilecek durumlar mevcut. ben ilişkili alanlar kullanmıyorum. tablolarda ilişkiyi hiç kullanmıyorum. kullanılmasınıda uygun görmüyorum açıkçası. ilişkilendirmeleri formlarda ve sorgularda yapıyorum. işiniz sadece bu proje ile ilgili ise güzel derleyip kullanmanız mantıklı. fakat kod sistemine dökülmesi daha mantıklı olacaktır. tam isteklerinizi yazıp aktarır iseniz daha faydalı bir bilgi alabilirsiniz.
misalan: bir tablodan başka bir tabloya kayıt ve ilk tablodan kayıt silme kodları aşağıdadır.

dim rs as new adodb.rekordset ' asıl tablomuza bağlantı yöntemini seçiyoruz
dim rs1 as new adodb.rekordset ' diğer tablomuza bağlantı yöntemini seçiyoruz

rs.open "asıltablo", currentproject.connection, adOpenKeyset, adLockOptimistic ' asıl tablomuza bağlanıyoruz
rs1.open "diğertablo", currentproject.connection, adOpenKeyset, adLockOptimistic 'diğer tablomuza bağlanıyoruz

rs1.addnew ' diğer tablomuza kayıt ekleyeceğimizi bildiriyoruz.
rs1.fields("asıl tablo ıd no")= me.form ıd no
rs1.fields("diğertabloalanadi")= me.metin kutusu adı 'formdan tabloya yazdıracağımızı bildiriyoruz. bu durum tüm metin kutuları ve alanlar için yapılacak
rs1.update ' diğer tabloya verileri yazdırıyoruz
rs1.close ' diğer tablo bağlantısını kesiyoruz.

rs.find "[asıl tablo id no]=" & me.formdaki metinkutusu '(ID olan) diğer tabloya aktarılan ID yi buluyoruz.
rs.delete 'bulduğumuz ID yi siliyoruz
rs.close

yukarıda yazdığım kodlar metin tablosunda ilişki yok ise çok daha iyi çalışacaktır. metin kutularında ve tablolu ilişkilerden fazla anlamıyorum. kod ile işlem yapmak daha kolay geliyor bana istediğim gibi yönlendiriyorum. önemli olan sadece mantığı anlamak ve onun üzerine işlem yaptırmak. bakıldığında zor gibi duruyor fakat kod sistemi daha kolay ve tamamen herşey kodlayanın elinde. unutulmaması gereken olay şu programlamada nesne ve olaylar vardır. nesne kullanılan ( metin kutusu, açılır kutu, liste kutusu vb.) olaylar ise nu nesnelere neler yaptırılacağı (kaydet, sil, güncelle, bul, getir, götür vb.) zaten kayıt etme, silme ve güncelleme işlemini yapabilen birisi çok daha rahat bir şekilde işe yarayacak program yapabilir.
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla
#8
Sayın ozguryasin,

Öncelikle yaptığınız açıklamalar için teşekkür ediyorum. Ben meramımı açıklayayım:

Yapmış olduğum çalışmayı Cezaevinde kullanıyorum. Çalışmam içerisindeki Fihrist tablosu ana tablo olarak kullanılmakta, Form olarakta sürekli olarak kullandığım örneğimde de yer alan Formdur.

Fihrist'te Kurumda bulunan H/T'lar, tahliye olanlar, sevk gidenler ve vefat edenlerin bilgileri yer almaktadır. Fihrist tablosunda yer alan KURUMUDAMI alanı ile aktif/pasif yapılıyor. Hükümlü/Tutukluluk durumları değişimlerini UYAP'tan verileri indirrerek güncelliyorum. Güncelleme yapmak için Fihrist tablosunu masaüstüne EXEL formatında aktararak pasif olanları ayırıp UYAP'tan indiridğim veriler ile güncelliyorum. Bu olay zaman aldığında aklıma gelen ve konumun başlığındada olduğu gibi pasif olan verileri Fihrist-Pasif tablosuna aktararak Fihrist tablosunun yükünü azaltmak ve UYAP'tan indirilen veriler ile güncellerken zamandan kazanmak.

Sİzin verdiğiniz ve sayın atoz112'nin verdiği linklerdeki kodları inceledim ve entegre etmeye çalıştım. Ancak şöyle bir husus ile karşılaştım. Fihrist tablosundaki alanların fazlalığı nedeni ile kodun devamı yapılamıyor.


(08/08/2014, 10:40)ozguryasin yazdı: tam olarak istediğinizi belirtirseniz daha iyi olacaktır....
İnna Lillâhi Ve İnnâ İleyhi Raciûn " Şüphesiz Biz Allah'tan Geldik ve O'na Döneceğiz "
Cevapla
#9
entegre etmek yerine anlayarak sıfırdan oluşturmanız daha mantıklı olacaktır. bir önceki mesajımda gönderdiğim kodlarda birinci kısım yeni tabloya kayıt ederken ikinci kısım ise yeni kayıt edilen bölümün kayıt işi bittikten sonra asıl tablodan kaydı silmekte. Fihrist tablonuzda fazla alan olması (ki tablolar yanlış hatırlamıyor isem 250 alana kadar problem çıkartmıyor.) sadece kod yazarken biraz daha fazla satır yazmak anlamına gelir.
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla
#10
Private Sub Komut4_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Fihrist-Pasif ([IDNO],[ADISOYADI]),[TCKIMLIKNO]),[KOGUSU]),[DURUMU]),[DOGUMYERI]),[DOGUMTARIHI]),[BABAADI]),[ANAADI]),[SUCU]),[GELISTARIHI]),[CIKILKGIRISTARIHI]),[KURUMUDAMI]),[TAHTARIHI]),[SEVKTARIHI]),[SEVKGITTIGICIK]),[VEFATTARIHI]),[VEFATNEDENI]),[FOTO]),[resim]),[IDDISIPLINCEZALARI]),[IDODUL]),[ODULGORUSUALDI]),[KIMLIKCIKARILDIMI]),[KIMLIKCIKARMATARIHI]),[IDHASIM]),[DISIPLINCEZASIALDIMI]),[MISAFIR]),[CALISANLAR]),[CALISTIGIBIRIM]),[TERORISTMI]),[IDTEROR]),[COCUKMU]),[KADINMI]),[KIMLIKVERILISNEDENI]),[MESLEGI]),[MEDENIDURUMU]),[DEFTERNO]),[KAYDEDILMESEBEBI]),[TOPLAMCEZASURESI]),[SARTLISALIVERILMESURESI]),[MAHSUBU]),[TAHLIYETARIHI]),[SARTLISALIVERMETARIHI]),[ACIKCIKAYRILMATARIHI]),[KOGUSDEGISIMTARIHI]) VALUES ('" & Me.IDNO & "','" & Me.ADISOYADI & "','" & Me.TCKIMLIKNO & "','" & Me.KOGUSU & "','" & Me.DOGUMYERI & "','" & Me.DOGUMTARIHI & "','" & Me.BABAADI & "','" & Me.ANAADI & "','" & Me.SUCU & "','" & Me.GELISTARIHI & "','" & Me.CIKILKGIRISTARIHI & "')"
DoCmd.SetWarnings True
Me.Tablo2alt.Requery

Me.CIKILKGIRISTARIHI ibaresinden sonra ekleme yapıldığında kodun rengi kırmızıya dönüyor

(08/08/2014, 14:20)ozguryasin yazdı: entegre etmek yerine anlayarak sıfırdan oluşturmanız daha mantıklı olacaktır. bir önceki mesajımda gönderdiğim kodlarda birinci kısım yeni tabloya kayıt ederken ikinci kısım ise yeni kayıt edilen bölümün kayıt işi bittikten sonra asıl tablodan kaydı silmekte. Fihrist tablonuzda fazla alan olması (ki tablolar yanlış hatırlamıyor isem 250 alana kadar problem çıkartmıyor.) sadece kod yazarken biraz daha fazla satır yazmak anlamına gelir.
İnna Lillâhi Ve İnnâ İleyhi Raciûn " Şüphesiz Biz Allah'tan Geldik ve O'na Döneceğiz "
Cevapla
#11
sayın mntf02,

aslında son yazdığınız sorununuza yönelik olarak belirttiğiniz
Alıntı:...Fihrist tablosundaki alanların fazlalığı nedeni ile kodun devamı yapılamıyor...
İfadesi,bu sorunun tespit edilmesi ve çözümü için gereken cevabı da beraberinde getiriyor.zira,kodlama sayfasında yazılacak karakter sayısı 250 dir.fakat,siz;tablo içerisinde oluşturduğunuz alan adlarını karakter sayısı olarak uzun tuttuğunuz için kodlamada yazdığınız sorgu ifadesinin yetmediğini de görmüş oldunuz.Sorununuzun çözümü için iki alternatif seçenek sunmak isterim.

SEÇENEK-1)
Ya,tablo ve alan adlarını uygun kısa ve öz ifadeler içerecek şekilde yeniden düzenlemeniz ve bu yeni haline göre tüm form,sorgu içeriklerinde yapmanız gereken düzenlemeleri sağlamalısınız.aslında bu konuda yanlış hatırlamıyorsam gerek size gerekse de diğer kullanıcılara buna dair çeşitli konuların içeriklerinde bu hususlara dikkat edilmesi ve sonrasında şu an gelinen durumlara gelinmesinin engellenmesinin sağlanması için bazı uyarılarda bulunulmuştu.işte o uyarılar aslında tam da bu gelinen noktaların bir öngörüsü olarak yapılmış geçerli ve genel kabul görür uyarılardı.elbette ki,zararın neresinden dönülürse kar dır mantığı ile,bu düzenlemelerin yapılmaya başlanması yerinde olacaktır.

SEÇENEK-2)
Ya da,yukarıda bahsi geçen düzenlemelerle uğraşmakla zaman kaybı yaşanmak istenmezse şöyle de yapılabilir,o zaman.

INSERT INTO sorgusu bünyesinde yer alan ve verilerin alınacağı değerleri içeren metin kutularını bir değişkene aktarıp o değişken adları bu metin kutularının yerlerine kullanılarak,karakter sayısının azaltılması sağlanabilir.örneğin;

Me.CIKILKGIRISTARIHI için,

Dim a as Date
a=format([CIKILKGIRISTARIHI],”dd/mm/yyyy”)
& "','" & Me.CIKILKGIRISTARIHI & "','" yerine de
& "','" & a & "','"
yazmak gibi.tabi,bunu diğer metin kutuları için de ve tek harfli değişkenlere uyarlamanız gerekmektedir.bu işlem evet kod satırlarını artırır ama en azından sorgunun yazılmasını sağlamak içindir.

sayın mntf02,
Paylaşılmak istenen bilgiler bunlardır,şu an itibarı ile.elbette ki,bu alternatif bilgiler sizin tercihinize ve görüşünüze sunulmuştur.uygulamak ve denemek size kalmıştır.

İyi çalışmalar,
Saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#12
Sayın atoz112,

Öncelikle cevap hususunda geciktiğim için özür dilerim. Ancak iş yerinden giriş yapabiliyorum. Yapmış olduğunuz açıklamayı okudum. 2. Yoldaki yaptığınız açıklama aklıma gelmişti ama iş yoğunluğundan dolayı unutmuşum. Dediğin yolu takip ederek işlemi bitirdikten sonra olumlu/olumsuz dönüş yapacağım.

İyi çalışmalar dilerim.
İnna Lillâhi Ve İnnâ İleyhi Raciûn " Şüphesiz Biz Allah'tan Geldik ve O'na Döneceğiz "
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task