Microsoft Access'te forma göre sorgu (QBF) tekniğini kullanma

Özgün KB numarası: 304428

Not

Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir. Bu makale yalnızca Microsoft Access veritabanı (.accdb ve .mdb) için geçerlidir.

Özet

Bu makalede, sorgu ölçütlerini belirtmek için formun nasıl kullanılacağı gösterilmektedir. Bu teknik, forma göre sorgu (QBF) olarak adlandırılır.

Ek Bilgi

QBF tekniğinde, sorgu ölçütlerini girdiğiniz bir form oluşturursunuz. Bu form boş metin kutuları içeriyor. Her metin kutusu, tabloda sorgulamak istediğiniz bir alanı temsil eder. Girdileri yalnızca arama ölçütlerini belirtmek istediğiniz metin kutularında yaparsınız.

QBF formu, tablodaki alanlarla eşleşen alanları olan bir veri giriş formuna benzer. Ad, Adres, Şehir, Eyalet ve Posta Kodu alanlarını içeren bir tablonun karşılık gelen alanları olan bir QBF formu olabilir. Belirli kayıtları seçmek için forma herhangi bir arama ölçütü bileşimi girebilirsiniz. Yalnızca bir şehir, şehir ve eyalet ya da yalnızca posta kodu ya da başka bir birleşim belirtebilirsiniz. Boş bıraktığınız alanlar yoksayılır. Formda bir komut düğmesine tıkladığınızda, Access formunuzdan arama ölçütlerini kullanan bir sorgu çalıştırır.

QBF tekniğini kullanmak için şu adımları izleyin:

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

  2. Herhangi bir tablo veya sorguyu temel almamış yeni bir form oluşturun ve QBF_Form olarak kaydedin.

  3. Yeni formda, aşağıdaki özelliklere sahip iki metin kutusu ve bir komut düğmesi oluşturun. Ardından formu kaydedin:

    Text box 1
    ------------------
    Name: WhatCustomer
    
    Text box 2
    ------------------
    Name: WhatEmployee
    
    Command button 1:
    ------------------
    Caption: Search
    OnClick: QBF_Macro
    
  4. Aşağıdaki yeni makroyu oluşturun ve QBF_Macro olarak kaydedin:

    Action: OpenQuery
    Query Name: QBF_Query
    View: Datasheet
    Data Mode: Edit
    
  5. Orders tablosunu temel alan aşağıdaki yeni sorguyu oluşturun ve QBF_Query olarak kaydedin:

    Field: CustomerID
    Sort: Ascending
    Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null
    
    Field: EmployeeID
    Sort: Ascending
    Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null
    
    NOTE: When you type the criteria, make sure that you type the entire criteria in a single Criteria field; do not split the criteria by placing the 'Or' section on a separate row.  
    
    Field: OrderID
    Field: OrderDate
    
  6. Form görünümünde QBF_Form açın. Aşağıdaki ölçüt birleşimlerini girin. Her birleşimden sonra Ara'ya tıklayın:

    Customer ID   Employee ID  Result
    -------------------------------------------------------
    <blank>       <blank>      All 830 orders
    
    AROUT         <blank>      13 orders
    
    AROUT         4            4 AROUT orders for employee 4
    
    <blank>       4            156 orders for employee 4
    

Her sorgu için sonuç kümesini görüntüledikten sonra Veri Sayfası penceresini kapatın. Ardından, sonraki aramanıza başlayın. Ara düğmesine her tıkladığınızda, QBF sorgusundaki parametreler verileri QBF sorgu formunda belirttiğiniz arama ölçütlerine göre filtreler.

QBF parametre ölçütlerine ilişkin notlar

Bu makaledeki örnek QBF sorgusu, sorguda şu ölçütleri uygular:

Forms! FormName! ControlnameYa da Forms! FormName! ControlnameIs Null

verileri filtrelemek için. Bu ölçütler eşleşen tüm kayıtları döndürür. Ölçüt değeri null ise, belirtilen alan için tüm kayıtlar döndürülür.

Biraz farklı sonuçlar döndürmek için aşağıdaki alternatif ölçütlerden herhangi birini belirtebilirsiniz.

Not

Aşağıdaki örnek ölçütlerde, çizgi devamlılığı karakteri olarak bir alt çizgi (_) kullanılır. Bu ölçütleri yeniden oluştururken satırın sonundan alt çizgiyi kaldırın.

  • Forms gibi! FormName! ControlName& "*" Veya _ Forms! FormName! ControlnameIs Null

    Bu ölçüt deyimi, joker karakter kullanarak sorgulayabileceğiniz durumlar dışında yukarıdaki QBF örneğiyle aynıdır. Örneğin, bu ölçüt deyimini kullanarak bir alana "Jo" girerseniz, sorgu alandaki "Jo" ile başlayan tüm kayıtları döndürür. Buna Johnson, Jones, Johanna vb. dahildir.

  • Formlar Arasında! FormName! BaşlangıçTarihi ve Formlar! FormName! EndDate veya _ Forms! FormName! StartDate Is Null

    Bu ölçüt deyimini, sorgu formundaki Başlangıç Tarihi ve Bitiş Tarihi metin kutularını kullanarak bir tarih alanını sorgulamak için kullanabilirsiniz. Başlangıç ve bitiş tarihleri sorgu formunda belirttiğiniz değerler arasında kalan kayıtlar döndürülür. Ancak formda bir Başlangıç Tarihi değerini atlarsanız, sorgu Bitiş Tarihi değerinden bağımsız olarak tüm kayıtları döndürür.

  • Forms gibi! FormName! ControlName& "*" Veya Is Null

    Bu ölçüt deyimi, ölçütle eşleşen kayıtları ve null olan kayıtları döndürür. Ölçüt null ise, tüm kayıtlar döndürülür. Yıldız işareti (*) daha büyük bir Like ifadesinin parçası olduğundan parametre olarak kabul edilir. Yıldız işareti sabit kodlanmış bir ölçüt değeri olduğundan (örneğin, Like "*"), null değerlere sahip kayıtlar döndürülür.

  • Like IIf(IsNull(Forms!FormName! [ControlName]), _ "*",[Forms]! [FormName]! [ControlName])

    Bu ölçüt deyimi, ölçütle eşleşen tüm kayıtları döndürür. Sorgu formunda hiçbir ölçüt belirtilmezse, null olmayan tüm kayıtlar döndürülür.

  • IIf(IsNull(Forms!FormName! [ControlName]), _ [AlanAdı],[Formlar]! [FormName]! [ControlName])

    Bu, ölçütlere uyan tüm kayıtları döndürür. Sorgu formunda hiçbir ölçüt belirtilmezse, null olmayan tüm kayıtlar döndürülür (yukarıdaki örnekte olduğu gibi aynı sonuç).