Merhaba,
Ekte ekran görüntüsü görüneceği üzeri;
"tbl_Products" adlı tablodan, "qry_Products" adlında bir sorgu oluşturdum;
Bu sorguda Satış alanının verileri "tbl_Sales" adındaki diğer tablodan gelmektedir.
Sorgu
Sql kodu:
SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi, Sum(tbl_Products.Miktar) AS ToplaMiktar, Sum(DSum("[Miktar]","tbl_Sales","[isEmri]=" & [ie])) AS Satis, [ToplaMiktar]-[Satis] AS Kalan
FROM tbl_Products
GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi;
buraya kadar bir sorun bulunmuyor,
Bu sorguya Excel' den
Sql ile ulaşamaya çalışırken
Kod:
SQL = " SELECT * FROM qry_Reports"
RS.Open SQL, cn, 1, 3
sorgunuz toplama işlevinin bir parçası olarak belirtilen '[ToplaMiktar]-[Satis]' ifadesini içermiyor
şeklinde hata mesajı alıyorum.
Nasıl bir çözüm önerirsiniz,
desteğiniz için şimdiden teşekkürler,
iyi Çalışmalar.
Sorgunuzu
SELECT Liman, UrunKod, UrunAdi, ToplaMiktar, Satis, (ToplaMiktar - Satis) AS Kalan
FROM (SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi,
Sum(tbl_Products.Miktar) AS ToplaMiktar,
Sum(DSum("[Miktar]","tbl_Sales","[isEmri]=" & [ie])) AS Satis
FROM tbl_Products
GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi) AS SubQuery;
şeklinde değiştirerek dener misiniz?
[ToplaMiktar]-[Satis] gibi hesaplamalar ile ifade alanları bazen sorun çıkarabilir çünkü bu alanları
Excel doğru bir şekilde anlayamayabiliyor.
Excel için daha anlaşılır olmasını teminen ToplaMiktar ve Satis hesaplamalarını ilk olarak ayrı bir alt sorgu içinde yaptırıp bu alt sorguyu yukarıdaki gibi ana sorgu içine alarak daha anlamlı bir ifade elde edilmesini sağlıyoruz. Bu sorgunuzu örneğin qry_ReportsNew gibi kaydederseniz
SQL = " SELECT * FROM qry_ReportsNew"
RS.Open SQL, cn, 1, 3
Excel'den çağırabilirsiniz veya eski sorgunuzun yerine kaydedip aynı ad ve kodla devam da edebilirsiniz.
(26/09/2024, 18:36)atoykan yazdı: [ -> ]Sorgunuzu
SELECT Liman, UrunKod, UrunAdi, ToplaMiktar, Satis, (ToplaMiktar - Satis) AS Kalan
FROM (SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi,
Sum(tbl_Products.Miktar) AS ToplaMiktar,
Sum(DSum("[Miktar]","tbl_Sales","[isEmri]=" & [ie])) AS Satis
FROM tbl_Products
GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi) AS SubQuery;
şeklinde değiştirerek dener misiniz?
[ToplaMiktar]-[Satis] gibi hesaplamalar ile ifade alanları bazen sorun çıkarabilir çünkü bu alanları Excel doğru bir şekilde anlayamayabiliyor. Excel için daha anlaşılır olmasını teminen ToplaMiktar ve Satis hesaplamalarını ilk olarak ayrı bir alt sorgu içinde yaptırıp bu alt sorguyu yukarıdaki gibi ana sorgu içine alarak daha anlamlı bir ifade elde edilmesini sağlıyoruz. Bu sorgunuzu örneğin qry_ReportsNew gibi kaydederseniz
SQL = " SELECT * FROM qry_ReportsNew"
RS.Open SQL, cn, 1, 3
Excel'den çağırabilirsiniz veya eski sorgunuzun yerine kaydedip aynı ad ve kodla devam da edebilirsiniz.
Teşekkürler Hocam
iyi ki varsınız;
Burada soracağım bir husus daha var,
Ekli ekran görüntüsünde ifade etmeye çalıştığım;
Hesaplanan
Dsum formülü ile hesaplanan "Satis" Alanında biçimlendirme yapamıyorum;
bunun bir yöntemi var mıdır?
iyi Akşamlar.
(26/09/2024, 18:36)atoykan yazdı: [ -> ]Sorgunuzu
SELECT Liman, UrunKod, UrunAdi, ToplaMiktar, Satis, (ToplaMiktar - Satis) AS Kalan
FROM (SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi,
Sum(tbl_Products.Miktar) AS ToplaMiktar,
Sum(DSum("[Miktar]","tbl_Sales","[isEmri]=" & [ie])) AS Satis
FROM tbl_Products
GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi) AS SubQuery;
şeklinde değiştirerek dener misiniz?
[ToplaMiktar]-[Satis] gibi hesaplamalar ile ifade alanları bazen sorun çıkarabilir çünkü bu alanları Excel doğru bir şekilde anlayamayabiliyor. Excel için daha anlaşılır olmasını teminen ToplaMiktar ve Satis hesaplamalarını ilk olarak ayrı bir alt sorgu içinde yaptırıp bu alt sorguyu yukarıdaki gibi ana sorgu içine alarak daha anlamlı bir ifade elde edilmesini sağlıyoruz. Bu sorgunuzu örneğin qry_ReportsNew gibi kaydederseniz
SQL = " SELECT * FROM qry_ReportsNew"
RS.Open SQL, cn, 1, 3
Excel'den çağırabilirsiniz veya eski sorgunuzun yerine kaydedip aynı ad ve kodla devam da edebilirsiniz.
Hocam tekrar merhaba,
Burada Satis alanında uygun değerler bulunamadığı zaman boş olarak geliyor, satis alanı boş gelinde Kalan da boş geliyor,
Kalan da boş yerine ToplaMiktar alanına eşit değerin gelmesi için nasıl bir düzenleme yapaılabilir?
(ToplaMiktar - Satis) AS Kalan
tekrar teşekkürleri
iyi akşamlar.
DSum alanlarınız hesaplanan alan bunun sonucu da default olarak string döner. Bu alanlar için CInt, CDbl, CCur gibi fonksiyonlarla dönüştürme işlemi yapmanız gerekir. Uygun değer bulunması bulunmaması durumlarına göre
NZ fonksiyonu veya mantıksal sınama
IIF fonksiyonu gibi yardımcılar kullanabilirsiniz.
(26/09/2024, 23:06)atoykan yazdı: [ -> ]DSum alanlarınız hesaplanan alan bunun sonucu da default olarak string döner. Bu alanlar için CInt, CDbl, CCur gibi fonksiyonlarla dönüştürme işlemi yapmanız gerekir. Uygun değer bulunması bulunmaması durumlarına göre NZ fonksiyonu veya mantıksal sınama IIF fonksiyonu gibi yardımcılar kullanabilirsiniz.
Hocam merhaba,
Aşağıdaki gibi formülün başına
cdbl ekleyeince boş olanlara
#Hata sonucunu döndürüyor,
bunun farklı bir çözümü olabilir mi?
Kod:
SELECT SubQuery.Liman, SubQuery.UrunKod, SubQuery.UrunAdi, SubQuery.ToplaMiktar, SubQuery.Satis, (ToplaMiktar-Satis) AS Kalan
FROM (SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi, Sum(tbl_Products.Miktar) AS ToplaMiktar, cdbl(DSum("[Miktar]","tbl_Sales","[Liman]='" & [Liman] & "' And [UrunKod]='" & [UrunKod] & "'")) AS Satis FROM tbl_Products GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi) AS SubQuery;
teşekkürler,
iyi çalışmalar.