Microsoft Access'te çalışan toplamlar sorgusu oluşturma

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

Bu makale, Microsoft Access veritabanı (.mdb) dosyası veya 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österilmektedir. Çalışan toplamlar sorgusu, her kaydın toplamının söz konusu kaydın ve önceki kayıtların toplamı olduğu bir sorgudur. Bu sorgu türü, bir grafikte veya raporda bir kayıt grubu (veya belirli bir süre içinde) üzerinde toplu toplamları görüntülemek için kullanışlıdır.

Not Bu makalede kullanılan tekniğin tanıtımını örnek dosya Qrysmp00.exe görebilirsiniz.

Daha Fazla Bilgi

Yöntem 1

İlk yöntem, zaman içinde çalışan bir toplam oluşturmak için bir sorgudaki DSum işlevini ve ölçütlerini kullanır. DSum işlevi geçerli kaydı ve önceki kayıtların toplamını alır. 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'de her ay için navlun maliyetlerinin çalışan bir toplamını oluşturmak için Northwind örnek veritabanındaki Orders tablosunu kullanır. Örnek veriler performans nedenleriyle bir yılla sınırlıdır. DSum işlevi sorgudaki her kayıt için bir kez çalıştığından, sorgunun işlenmesinin tamamlanması birkaç saniye sürebilir (bilgisayarınızın hızına bağlı olarak). Bu sorguyu oluşturmak ve çalıştırmak için şu adımları izleyin:

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

  2. Yeni bir seçme sorgusu oluşturun ve Orders tablosunu ekleyin.

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

    Not Access 2007'de, Tasarım sekmesinin Göster/Gizle grubunda Toplamlar'a tıklayın.

  4. Sorgu tasarım kılavuzunun ilk sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sıralama 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 bölümünü görüntüler ve sıralar.

  5. Sorgu tasarım kılavuzunun ikinci sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sıralama 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ü sıralar ve 1 ile 12 arasında bir tamsayı değeri olarak görüntüler.

  6. Sorgu tasarım kılavuzunun üçüncü sütununda, 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, çizginin sonundaki bir alt çizgi (_) çizgi devamlılık 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şlemekte olduğu geçerli kayıttan küçük veya buna eşit olduğunda Navlun alanını toplamak için DSum() işlevini kullanır.

  7. Sorgu tasarım kılavuzunun dördüncü sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sıralama 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ı Oca, Şub, Mar vb. metin biçiminde görüntüler.

  8. Sorgu tasarım kılavuzunun beşinci sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Ölçüt 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 verilerini içerecek şekilde filtreler.

  9. Sorguyu çalıştırın. RunTot alanında aşağıdaki kayıtların çalışan bir toplamla görüntülendiğ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 DSum() işlevine sahip bir toplamlar sorgusu kullanır.

Aşağıdaki örnek sorgu, çalışan başına navlun maliyetlerini toplamak ve navlun çalışan toplamını hesaplamak için Orders tablosunu kullanır. Sorguyu oluşturmak ve çalıştırmak için şu adımları izleyin:

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

  2. Yeni bir seçme sorgusu oluşturun ve Orders tablosunu ekleyin.

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

    Not Access 2007'de, Tasarım sekmesinin Göster/Gizle grubunda Toplamlar'a tıklayın.

  4. Sorgu tasarım kılavuzunun 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 gruplar.

  5. Sorgu tasarım kılavuzunun 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 verilerinin toplamını alır.

  6. Sorgu tasarım kılavuzunun üçüncü sütununda, 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, çizginin sonundaki bir alt çizgi (_) çizgi devamlılık 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 değerinden küçük veya buna eşit olduğunda Navlun alanını toplamak için bir DSum() işlevi kullanır ve alanı dolar cinsinden biçimlendirer.

  7. Sorguyu çalıştırın. RunTot alanında aşağıdaki kayıtların çalışan bir toplamla görüntülendiğ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