Bir Form Aracılığıyla Birden Fazla Tabloya Veri Girmek

Katılım
13 Mart 2008
Mesajlar
22
Excel Vers. ve Dili
ütaldo
Herkese merhabalar,

Bir form aracılığıyla gireceğim verinin birden fazla tabloya eş zamanlı olarak kayıt edilmesi mümkün müdür?

Örneğin, A isimli bir formum, B ve C isimli iki tablom var. B ve C tablolarının ortak veri alanları var ve formda ortak alanlara girdiğim verinin hem B tablosundaki hem de C tablosundaki ilgili alanlara aynı anda yazılmasını istiyorum. Bunun bir yolu var mıdır?
 
Katılım
13 Mart 2008
Mesajlar
22
Excel Vers. ve Dili
ütaldo
Arkadaşlar ben sorumu biraz daha genişleterek ve örneği de ekleyerek tekrar sormak istiyorum. Zamanım çok daraldı yardımcı olabilirseniz memnun olurum.

İlk mesajda, bir forma yazdığım verinin aynı anda iki tabloya yazılıp yazılamayacağını sormuştum. Bir veriyi aynı anda iki farklı tabloya kaydetmeyi istememin sebebi sorgular yoluyla istediğim veriyi elde edemememden kaynaklanıyor. Eğer sorgularda istediğim veriyi elde edebilirsem, aynı anda aynı veriyi farklı iki tabloya kayıt etmeye çalışmam gerekmeyecek.

Ekte epey karmaşık da olsa hazırladığım çalışmayı görebilirsiniz.

Çalışma bittiğinde çıkaracağım raporlara taban oluşturması amacıyla ihtiyacım olan sorguları oluşturdum. Ancak bir sorunum var. Örneğin "Toplam Sözleşme Bedeli" çıkaracağım raporla ilgili birkaç çarpraz sorguda kullanmam gerekiyor. Bir uzman ekip sözleşmesi için tek bir bedel biçilebileceği gibi, sözleşmenin imzalanmasını takip eden zamanlarda birçok değişik sebeple meydana gelebilecek revizyonlar neticesinde, sözleşme bedelini arttırıcı veya azaltıcı ek protokoller de imzalanabilmektedir. Böylece sözleşmenin toplam bedeli değişebilmektedir.

Böylece;

UE Toplam Sözleşme Bedeli Sorgusu.Toplam sözleşme bedeli = UE Sözleşme Bedeli Sorgusu.Toplam Sözleşme Bedeli + Sözleşme Ek Protokoller Toplam Sorgusu.Toplam Ek ProtokolDöviz Tutarı
alanlarından meydana gelecek.

[UE Sözleşme Bedeli Sorgusu.Toplam Sözleşme Bedeli] alanı veriyi Uzman Ekip Tanımları Tablosu'ndan, [Sözleşme Ek Protokoller Toplam Sorgusu.Toplam Ek Protokol Döviz Tutarı] alanı ise Sözleşme Ek Protokoller Tablosu'ndan almaktadır.

Sorunumsa şöyle, bir firmanın (örneğin ekli dosyada tanımlı TY-003CEVRE sözleşme kodlu firma) sözleşme bedeli 36.000.-TL'dir ve hiçbir ek protokol yapılmamıştır. Toplam sözleşme bedeli bu durumda;
UE Toplam Sözleşme Bedeli Sorgusu.Toplam Sözleşme Bedeli = 36.000 + 0 = 36000 şeklinde olmalıdır.

Ancak Ek protokoller Toplam sorgusu'na belirttiğim firma için bir ek protokol girişi yapılmamış olduğundan, ek protokoller tablosunda hiçbir değer yazmamakta ve sonuç olarak sorgu düzgün çalışmamaktadır. Diğer sorgularda da benzer biçimde birçok alanda "null" değerine sahip olan (daha doğrusu hiçbir değere sahip olmayan) hücreler sebebiyle istediğim sonuçları vermiyor ve sonuç olarak raporlarda da istediğim sonuçları elde edemiyorum. Bunun için bir çözüm öneriniz olabilir mi acaba?

Sorumu olabildiğince açık aktarmaya çalıştım bu sebeple yardımcı olmaya çalışan arkadaşların harcadıkları fazladan vakit için özürlerimi iletirim.
 

Ekli dosyalar

  • 444 KB Görüntüleme: 64
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Tablo yapınız ve yapmak istedikleriniz çok karışık.. Daha basit bir yapı ile yukarıda yazdıklarınızı yapmak daha kolay olur.. Başa dönemek için sanırım şuan biraz geç.. ;)

Şu aşamadaki sorun, ek protokol yapılmamış firmaların sözleşme bedellerini de UE Toplam Sözleşme Bedeli Sorgusunda göstermekse, adı geçen sorguyu Sql tasarımında açıp aşağıda yazdığım bu yeni hali ile değiştirin.. Sözleşme bedeline sahip fakat ek protol yapılmamış firmalar ve bedel toplamlarını görebileceksiniz..

Buradaki püf noktası; null alanlar için Nz fonksiyonu(Ek Protokol Döviz Tutarı alanında uygulanmıştır.) ve iki tablo arasında kurulan ilişkidir(Uzman Ekip Tanımları Tablosundaki tüm kayıtlar ile aynı tablodan Sözleşme Ek Protokoller Toplam Sorgusu Tablosundan eşleşen kayıtlar gösterilmiştir)..



Kod:
SELECT [Uzman Ekip Tanımları Tablosu].[Sözleşme Kodu], [Uzman Ekip Tanımları Tablosu].[Sözleşme Para Birimi], [Uzman Ekip Tanımları Tablosu].[Sözleşme Bedeli], nz([Sum Of Ek Protokol Döviz Tutarı],0) AS [Ek Protokol Döviz Tutarı], [Sözleşme Bedeli]+[Ek Protokol Döviz Tutarı] AS Toplam
FROM [Uzman Ekip Tanımları Tablosu] LEFT JOIN [Sözleşme Ek Protokoller Toplam Sorgusu] ON [Uzman Ekip Tanımları Tablosu].[Sözleşme Kodu] = [Sözleşme Ek Protokoller Toplam Sorgusu].[Sözleşme Kodu];
 
Katılım
13 Mart 2008
Mesajlar
22
Excel Vers. ve Dili
ütaldo
Sayın Taruz,

Şu an itibariyle aldığınız sevabın haddi hesabı yok diyebilirim. Bildiğim ne kadar dua varsa ettim gerçekten. Beni ne büyük bir dertten kurtardığınızı bilemezsiniz. Verdiğiniz SQL kodunu ihtiyacım olan diğer sorgularda da kullanarak istediğim verilere ulaşmaya çalışacağım. Başım sıkışırsa yine yardım isteyeceğim mecburen ancak şimdilik ilginiz için çok teşekkür ederim.:dua2::dua2::dua2:
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Ben teşekkür ederim.. Vakit buldukça yardımcı olmaya çalışırım..
 
Katılım
13 Mart 2008
Mesajlar
22
Excel Vers. ve Dili
ütaldo
Merhabalar,

Bu başlık altında attığım ilk mesajıma sorunuma Sn. Taruz bir çözüm getirmişti. Ve bu çözümü uygulayarak istediğim veriyi elde ettiğimi sanmıştım ki bu sefer de bir başka hata ile karşılaştım.

nz([Tablo Adı.alan Adı]),0)

bu formülle, veri tabanında null değere sahip olan alanları istediğim gibi 0 (sıfır) olarak görmeyi sağladık. Ancak elde etmiş olduğum bu değeri bir başka matematiksel veriyle karşılaştırmaya çalıştığımda sorunla karşılaştım. Ortada sanki bir format hatası var gibi. Bu formül neticesinde "0" değerine ulaşmış olduğum bir hücredeki değeri, örneğin 2175 sayısıyla toplamak istediğimi düşünelim. Şöyle ki toplama işlemi;

0 + 2175 = 2175 değerini vermesi gerekiyorken ; 02175 değerini
2175 + 0 = 2175 değerini vermesi gerekiyorken ; 21750 değerini veriyor.

Yukarıda da bahsettiğim gibi "nz" formülü neticesinde elde edilmiş olan "0" değeri sanki bir metinmiş gibi hareket ediyor. Ve ben normal bir toplama işlemi yapmak istediğimde, iki matematiksel veriyi toplamak yerine sanki excel'deki &""& şeklinde kurulan ve metin veya sayıyı yanyana yazan formül gibi hareket ediyor.

Bu durumu nasıl çözebileceğim konusunda fikri olan arkadaşlar yardımcı olabilirler mi

Saygılar
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın xamimax,

Yine de siz tablonuzdaki veri türlerini bir kontrol edin. Büyük bir ihtimalle hata orada.

Ama yine de

CDbl(nz([Tablo Adı.alan Adı]),0)) olarak kullanmayı deneyin. Tabi bu sefer çift duyarlı bir sayı elde edeceksiniz. Kullandığınız sayı türünü de bilmemiz gerekiyor.

İyi çalışmalar
 
Katılım
13 Mart 2008
Mesajlar
22
Excel Vers. ve Dili
ütaldo
Arkadaşlar abartmıyorum, sizler hakikaten cennetlik insanlarsınız.

Çok teşekkür ederim Sn. modalı CDbl işimi halletti :D
 
Üst