Access projesinde parametreli hale getirilmiş bir birleşik giriş kutusu nasıl kullanılır?

Makale çevirileri Makale çevirileri
Makale numarası: 281870 - Bu makalenin geçerli olduğu ürünleri görün.
Orta: temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.

Bu makalede, yalnızca bir Microsoft Access projesine (.adp) uygulanır.

Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Birleşik giriş kutuları bir seçenekler listesi, bir kullanıcıya sunmak için iyi bir yol sağlar. Birleşik giriş kutusunun satır kaynağı, bir tablodaki veya sorgudaki kayıtların bir alt kümesini bağlı gerekiyorsa, Seçenekler sınırlamak için bir WHERE yan tümcesini ekleyebilirsiniz.

Bu makaledeki örnek NorthwindCS.adp örnek proje <a1>Müşteriler</a1> formundaki bir birleşik giriş kutusu ekler. Birleşik giriş kutusu, geçerli müşteri tarafından yerleştirilen siparişlerini listeler. Seçildiğinde, seçili sipariş ayrıntılarını gösteren açar, siparişleri oluşturur.

Siparişleri bir müşteri tarafından yerleştirilen eşleşen bir listesini oluşturmak için dört farklı yöntem kullanabilirsiniz. Bu yöntem, veri kaynağı olarak Microsoft SQL Server 2000 ile Access projesi (.adp) kullanın. Bu yöntem, sonraki bölümde açıklanmıştır.

Daha fazla bilgi

Açılan kutu oluşturma

Bu bölüm, ilk açılan kutu geçerli bir müşterinin siparişlerinin listesi görüntülenir Müşteriler formunda oluşturulacağını gösterir.
  1. Müşteriler formu Tasarım görünümünde açın.
  2. Araç, Denetim Sihirbazları ' nı tıklatın ve sonra da Forma açılan kutu ekleyin.
  3. Bir tablo veya sorgudaki değerleri aramak ve sonra ileri ' yi tıklatın, sihirbazın ilk sayfasında seçin.
  4. Sihirbazın ikinci sayfasında, Orders tablosundaki'ı tıklatın ve sonra ileri ' yi tıklatın.
  5. Sihirbazın üçüncü sayfasında, SiparişNo MüşteriNo ve sipariş tarihi alanlarında, birleşik giriş kutusu ekleyin ve sonra ileri ' yi tıklatın.
  6. Sihirbazının dördüncü sayfasında, Anahtar sütunu Gizle temizlemek için tıklatın ve sonra görünür durumda değilse, MüşteriNo sütunu küçülebilir. Ileri ' yi tıklatın.
  7. Beşinci sihirbaz sayfasında, SiparişNo alanıyla, veritabanınızda depolamak veya yeniden kabul etmek için ileri ' yi tıklatın.
  8. Daha sonra kullanmak için değeri anımsar ve ileri ' yi tıklatın, altıncı sayfasında sihirbazın seçin.
  9. Sihirbazın son sayfasında, birleşik giriş kutusu Seç sıra etiketini ve sonra da <a2>son</a2>'u tıklatın.
  10. Birleşik kutunun özellik sayfasını açın ve sonra da SelectOrderCombo için birleşik giriş kutusunun adını değiştirin.
  11. Aşağıdaki olay yordamına birleşik giriş kutusunun <a1>tıklatıldığında</a1> özelliğini ayarlayın:
    Private Sub SelectOrderCombo_Click()
    On Error GoTo Err_SelectOrderCombo_Click
        Dim stDocName As String
        Dim stLinkCriteria As String
    
        stDocName = "Orders"
    
        stLinkCriteria = "[OrderID]=" & Me![SelectOrderCombo]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    Exit_SelectOrderCombo_Click:
        Exit Sub
    
    Err_SelectOrderCombo_Click:
        MsgBox Err.Description
        Resume Exit_SelectOrderCombo_Click
    
    End Sub
    					

Birleşik giriş kutusunu Yenile kodu ekleme

Bu bölüm, birleşik giriş kutusu yenilemek için kullanabileceğiniz yöntemleri gösterir. Aşağıdaki dört yöntemden birini seçin ve sonra da uygun kodu açılan kutunun <a1>OnEnter</a1> olayına ekleyin.

Yöntemleri 1 ve 2, birleşik giriş kutusu seçiliyse, her zaman, yalnızca sahibin meşru olarak geçerli müşteri eşleşen siparişlerini görüntülemek birleşik giriş kutusu için satır kaynağı OnClick olay sıfırlar.

Not: Müşteri Kimliği alanı, bir metin alanı olduğu, tek tırnak (') formlar başvuru birleştirilmiş gerekir. Oluşturulan WHERE yan tümcesi örneğin dönüştürülür:
WHERE CustomerID = '" & Forms![Customers]![CustomerID] & "'"
				
için:
WHERE CustomerID = 'ALFKI'
				

Yöntem 1: Ad Hoc Seç kullanma

Birleşik giriş kutusunun OnEnter özelliği olay yordamını ayarlayın:
Me.SelectOrderCombo.RowSource = "SELECT TOP 100 PERCENT OrderID, CustomerID, OrderDate FROM Orders WHERE " _
     & "CustomerID = '" & Forms![Customers]![CustomerID] & "' ORDER BY OrderDate DESC"

				

Yöntem 2: bir SQL Server görünümü kullanma

  1. Görünüm Tasarımcısı'nda yeni görünüm oluşturmak ve sonra Siparişler tablosundan SiparişNo ve MüşteriNo OrderDate alanları seçin. En yeniden en eskiye giden bir sıralamada siparişlerinin listesini sıralamak için AzalanSıralama türü sipariş tarihi alanı için ayarlayın.
  2. Görünüm vwCustomerOrders kaydedin.
  3. Birleşik giriş kutusunun OnEnter özelliği olay yordamını ayarlayın:
    Me.SelectOrderCombo.RowSource = "SELECT * FROM vwCustomerOrders WHERE CustomerId = '" & Forms![Customers]![CustomerID] & "'"
    					
Yöntemleri 3 ve 4'te, birleşik giriş kutusu Requery yöntemini, bir saklı yordam veya SQL işlevi eşleşen kayıtları döndürmek için yeniden yürütmek için OnEnter olayda denir. Bu örneklerde, parametre, bir @ ControlName ölçütleri kullanarak form denetimi olarak tanımlanır. Access, otomatik olarak ölçütleri değerlendirir ve eşleşen kayıtlarla istekleri.

Aşağıdaki örneklerde, birleşik giriş kutusunun geçerli müşteri için tüm siparişlerin bir listesini verir. MüşteriNo metin kutusu, geçerli müşteri KIMLIĞI içerdiğinden, saklı yordam veya SQL işlevi ölçüt MüşteriNo metin kutusuna doğrudan başvurabilirsiniz.

Yöntem 3: saklı yordamı bir SQL Server'ı kullanma

  1. Yeni bir yordam, grafik tasarımcısında oluşturun.
  2. Siparişler tablosunu seçin ve saklı yordamına SiparişNo ve MüşteriNo OrderDate alanları ekleyin.
  3. @ MüşteriNo girin MüşteriNo alanı ve sipariş tarihi alanında azalan sıralama ölçütleri olarak.
  4. Saklı yordamın spCustomerOrders kaydedin ve sonra kapatın.
  5. SpCustomerOrders saklı yordamı, birleşik giriş kutusunun satır kaynağı olarak ayarlayın.

    Not: aşağıdaki SQL deyimi tarafından depolanan kaydedilen oluşturulur ve yordam Tasarımcısı:
    CREATE PROCEDURE dbo.spCustomerOrders
      (@CustomerID varchar(5))
      AS SELECT OrderID, CustomerID, OrderDate
      FROM   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC
    					
  6. Birleşik giriş kutusunun OnEnter özelliği olay yordamını ayarlayın:
    Me.SelectOrderCombo.Requery
    					

Yöntem 4: bir SQL Server 2000 işlev kullanma

Access projesinde veri kaynağı olarak SQL Server 2000 veya sonraki bir sürümünü kullanıyorsa, yalnızca bu yöntemi kullanabilirsiniz.
  1. Bir grafik tasarımcısında oluşturun.
  2. Siparişler tablosunu seçin ve saklı yordamına SiparişNo ve MüşteriNo OrderDate alanları ekleyin.
  3. @ MüşteriNo girin MüşteriNo alanı ve sipariş tarihi alanında azalan sıralama ölçütleri olarak.
  4. Işlev fnCustomerOrders kaydedin ve sonra kapatın.
  5. FnCustomerOrders işlevi, birleşik giriş kutusunun satır kaynağı olarak ayarlayın.

    Not: aşağıdaki SQL deyimi tarafından depolanan kaydedilen oluşturulur ve yordam Tasarımcısı:
    CREATE FUNCTION dbo.fnCustomerOrders
      (@CustomerID varchar(5))
      RETURNS TABLE
      RETURN ( SELECT TOP 100 PERCENT OrderID, CustomerID, OrderDate
      FROM   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC )
    					
  6. Birleşik giriş kutusunun OnEnter özelliği olay yordamını ayarlayın:
    Me.SelectOrderCombo.Requery
    					
Bu yöntemler test etmek için <a0></a0>, formu açın ve sonra sipariş Seç</a1> birleşik giriş kutusundan seçin. OnEnter olay, birleşik giriş kutusunu otomatik olarak geçerli müşteri siparişlerinin listesini oluşturma, yeniden sorgular. Sipariş seçildiğinde, birleşik giriş kutusunun OnClick olay yürütülür ve seçili sipariş görüntüleyen siparişler formu açıldığında.

Özellikler

Makale numarası: 281870 - Last Review: 11 Ağustos 2004 Çarşamba - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Access 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbprogramming kbadp kbclientserver kbhowto KB281870 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:281870

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com