Microsoft Access'te çalışan toplamlar sorgusu nasıl oluşturulur?

Not

Office 365 ProPlus, Microsoft 365 Kurumsal Uygulamaları olarak yeniden adlandırılıyor. Bu değişiklik hakkında daha fazla bilgi için, bu blog yazısını okuyun.

Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı beceriler gerektirir.

Bu makale, bir Microsoft Access veritabanı (.mdb) dosyası veya bir Microsoft Access veritabanı (.accdb) dosyası için geçerlidir.

Özet

Bu makalede, çalışan toplamlar sorgusu oluşturmak için kullanabileceğiniz iki yöntem gösterilebilir. Çalışan toplamlar sorgusu, her kaydın toplamının bu kaydın ve önceki kayıtların toplamı olduğu bir sorgudur. Bu sorgu türü, bir grafik veya raporda bir kayıt grubu (veya belirli bir süre içinde) üzerinde kümülatif toplamları görüntülemek için yararlıdır.

Not Qrysmp00.exe örnek dosyasında bu makalede kullanılan tekniğin bir gösteri görebilirsiniz.

Daha Fazla Bilgi

Yöntem 1

İlk yöntem, zaman içinde çalışan bir toplam oluşturmak için bir sorguda bir DSum işlevi ve ölçütleri kullanır. DSum işlevi geçerli kaydı ve önceki kayıtları toplamlar. Sorgu bir sonraki kayda geçtiğinde, DSum işlevi yeniden çalışır ve kümülatif toplamı güncelleştirir.

Aşağıdaki örnek sorgu, 1997'deki her ay için navlun maliyetlerinin çalışan bir toplamını oluşturmak için Northwind örnek veritabanından Siparişler tablosunu kullanır. Örnek veriler, performans nedenleriyle bir yıl ile sınırlıdır. DSum işlevi sorgudaki her kayıt için bir kez çalıştığından, sorgunun işlemesinin tamamlanması birkaç saniye sürebilir (bilgisayarınızın hızına bağlı olarak). Bu sorguoluşturmak ve çalıştırmak için aşağıdaki adımları izleyin:

  1. Northwind örnek veritabanını açın.

  2. Yeni bir seçim sorgusu oluşturun ve Siparişler tablosunu ekleyin.

  3. Görünüm menüsünde Toplamlar'ıtıklatın.

    Not Access 2007'de, Tasarım sekmesinde Göster/Gizle grubunda Toplamlar'ı tıklatın.

  4. Sorgu tasarım ızgarasının ilk sütununa, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sırala ve Göster kutuları için aşağıdaki seçimleri yapın:

    Field: AYear: DatePart("yyyy",[OrderDate])
    Total: Group By
    Sort: Ascending
    Show: Yes
    

    Alan kutusundaki ifade, OrderDate alanının yıl kısmını görüntüler ve sıralar.

  5. Sorgu tasarım ızgarasının ikinci sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sırala ve Göster kutuları için aşağıdaki seçimleri yapın:

    Field: AMonth: DatePart("m",[OrderDate])
    Total: Group By
    Sort: Ascending
    Show: Yes
    

    Alan kutusundaki ifade, Sipariş Tarihi alanının ay bölümünü 1'den 12'ye bir tamsayı değeri olarak sıralar ve görüntüler.

  6. Sorgu tasarım ızgarasının üçüncü sütununa, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın.

    NOT Aşağıdaki örnekte, satırın sonundaki alt çizgi (_) çizgi devam karakteri olarak kullanılır. Bu örneği yeniden oluştururken alt çizgiyi satırın sonundan kaldırın.

    Field: RunTot: DSum("Freight","Orders","DatePart('m', _
    [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _
    [OrderDate])<=" & [AYear] & "")
    Total: Expression
    Show: Yes
    

    Alan kutusundaki ifade, Hem AMonth hem de AYear alanlarındaki değerler sorgunun işlediği geçerli kayıttan daha az veya eşit olduğunda Navlun alanını toplama bilmek için DSum() işlevini kullanır.

  7. Sorgu tasarım ızgarasının dördüncü sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sırala ve Göster kutuları için aşağıdaki seçimleri yapın:

    Field: FDate: Format([OrderDate],"mmm")
    Total: Group By
    Sort: Ascending
    Show: Yes
    

    Alan kutusundaki ifade her ay metin biçiminde, böyle bir Jan, Feb, Mar ve benzeri görüntüler.

  8. Sorgu tasarım ızgarasının beşinci sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Ölçütler ve Göster kutuları için aşağıdaki seçimleri yapın:

    Field: DatePart("yyyy",[OrderDate])
    Total: Where
    Criteria: 1997
    Show: No
    

    Alan kutusundaki ifade, sorgunun kayıt kümesini yalnızca 1997'deki verileri içerecek şekilde filtreler.

  9. Sorguyu çalıştırın. RunTot alanının çalışan bir toplamla aşağıdaki kayıtları görüntülediğini unutmayın:

    AYear AMonth RunTot FDate
    --------------------------------------
    1997 1 2238.98 Jan
    1997 2 3840.43 Feb
    1997 3 5729.24 Mar
    1997 4 8668.34 Apr
    1997 5 12129.74 May
    1997 6 13982.39 Jun
    1997 7 17729.29 Jul
    1997 8 22204.73 Aug
    1997 9 26565.26 Sep
    1997 10 32031.38 Oct
    1997 11 36192.09 Nov
    1997 12 42748.64 Dec
    

Yöntem 2

İkinci yöntem, bir grup üzerinde çalışan bir toplam oluşturmak için Bir DSum() işlevi ile toplamsorgusu kullanır.

Aşağıdaki örnek sorgu, çalışan başına navlun maliyetlerini toplamın yanı sıra navlunun çalışan toplamını hesaplamak için Siparişler tablosunu kullanır. Sorguoluşturmak ve çalıştırmak için aşağıdaki adımları izleyin:

  1. Örnek veritabanı Northwind.mdb açın.

  2. Yeni bir seçim sorgusu oluşturun ve Siparişler tablosunu ekleyin.

  3. Görünüm menüsünde Toplamlar'ı tıklatın.

    Not Access 2007'de, Tasarım sekmesinde Göster/Gizle grubunda Toplamlar'ı tıklatın.

  4. Sorgu tasarım ızgarasının ilk sütununda, Alan kutusuna aşağıdaki alanı ekleyin ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın:

    Field: EmpAlias: EmployeeID
    Total: Group By
    Show: Yes
    

    Bu alan, verileri EmployeeID'ye göre gruplatır.

  5. Sorgu tasarım ızgarasının ikinci sütununda, Alan kutusuna aşağıdaki alanı ekleyin ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın:

    Field: Freight
    Total: Sum
    Show: Yes
    

    Bu alan navlun verilerini toplamlar.

  6. Sorgu tasarım ızgarasının üçüncü sütununa, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın.

    NOT Aşağıdaki örnekte, satırın sonundaki alt çizgi (_) çizgi devam karakteri olarak kullanılır. Bu örneği yeniden oluştururken alt çizgiyi satırın sonundan kaldırın.

    Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00")
    Total: Expression
    Show: Yes
    

    Alan kutusundaki ifade, EmployeeID geçerli EmpAlias'tan daha az veya eşit olduğunda Navlun alanını özetlemek için bir DSum() işlevi kullanır ve sonra alanı dolar cinsinden biçimlendirir.

  7. Sorguyu çalıştırın. RunTot alanının çalışan bir toplamla aşağıdaki kayıtları görüntülediğini unutmayın:

    Employee SumOfFreight RunTot
    -------------------------------------------------
    Davolio, Nancy $8,836.64 $8,836.64
    Fuller, Andrew $8,696.41 $17,533.05
    Leverling,Janet $10,884.74 $28,417.79
    Peacock, Margaret $11,346.14 $39,763.93
    Buchanan, Steven $3,918.71 $43,682.64
    Suyama, Michael $3,780.47 $47,463.11
    King, Robert $6,665.44 $54,128.55
    Callahan, Laura $7,487.88 $61,616.43
    Dodsworth, Anne $3,326.26 $64,942.69