Microsoft Access'te Birleşik Giriş Kutusu seçiminden belirli bir kayda geçme

Orta: Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.

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

Özet

Bu makalede, birleşik giriş kutusundan seçilene göre belirli bir kayda geçmenin dört yöntemi gösterilir. Yöntemler aşağıdaki gibidir:

  • Bir birleşik giriş kutusunun AfterUpdate olayında, FindFirst yöntemini kullanan kodu yürütür.
  • Birleşik giriş kutusunun AfterUpdate olayında, formun Filter özelliğini yeniden sorgulayan bir makroyu çağırın.
  • Ana formda birleşik giriş kutusu ve alt form denetiminin LinkMasterFields ve LinkChildFields özelliklerine bağlı alt formdaki verileri içeren bir Form/Alt Form kullanın.
  • Formu iki tabloyu birleştiren bir sorguya dayandırın ve birleştirmeyi denetleen alana birleşik giriş kutusu bağlamak için AutoLookup tekniğini kullanın.

Bu dört yöntem, bu makalenin "Daha Fazla Bilgi" bölümünde özetlenmiştir ve Northwind örnek veritabanını temel alır.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.

Dikkat

Bu örnekteki adımları izlerseniz örnek veritabanı Northwind.mdb değiştirirsiniz. Northwind.mdb dosyasını yedeklemek ve veritabanının bir kopyasında bu adımları izlemek isteyebilirsiniz.

Aşağıdaki tabloda dört yöntemin özellikleri (avantajlar ve dezavantajlar) karşılaştırılıyor:

Yöntem 1 2 3 4
Kod/makro gerektirmez X
Alt form gerekli değil X X
Diğer kayıtlara kaydırılabilir X X
Sorgu gerektirmez X X X X
Kayıtları düzenleyebilir X X X X
Formu diğer modlarda açar X

Not

Bu yöntemler metin kutularına da uygulanabilir.

Yöntem 1

  1. ProductID alanına ve ProductName alanına sahip Products adlı bir tablo oluşturun.

  2. Ürünler tablosunu temel alan yeni bir form oluşturmak için Otomatik Form: Sütunlu Sihirbazı'nı kullanın ve ardından formu frmComboTest olarak kaydedin.

    Bunu Microsoft Office Access 2003 ve Access'in önceki sürümlerinde yapmak için şu adımları izleyin:

    1. Veritabanı penceresinde, Nesneler'in altındaki Formlar'a tıklayın.
    2. Veritabanı penceresi araç çubuğunda Yeni'ye tıklayın.
    3. Yeni Form iletişim kutusunda Otomatik Form: Sütunlu'ya tıklayın, açılan listeden Ürünler tablosunu seçin ve ardından Tamam'a tıklayın.
    4. Formu frmComboTest olarak kaydedin.

    Bunu Microsoft Office Access 2007 veya sonraki bir sürümde yapmak için şu adımları izleyin:

    1. Oluştur sekmesinde, Formlar grubunda Form Sihirbazı'na tıklayın.
    2. Sihirbazdan iletişim kutusunda, açılan listeden Ürünler tablosunu seçin.
    3. Yeni formda görmek istediğiniz alanları seçin ve ardından İleri'ye tıklayın.
    4. Formun düzenini ayarlamak için Sütunlu seçeneğini belirleyin ve İleri'ye tıklayın.
    5. Form başlığı olarak frmComboTest yazın ve Son'a tıklayın.
  3. İlişkisiz birleşik giriş kutusu eklemek için Birleşik Giriş Kutusu Sihirbazı'nı kullanın. Bunu yapmak için şu adımları uygulayın:

    1. Tasarım görünümünde frmComboTest formunu açın.
    2. Araç çubuğunda Denetim Sihirbazları'nın seçili olduğundan emin olun.

    Not

    Access 2007 veya sonraki bir sürümde, Tasarım sekmesinin Denetimler grubunda Denetim Sihirbazlarını Kullan'ın seçili olduğundan emin olun.

    1. frmComboTest formunda bir birleşik giriş kutusu oluşturun.

    Not

    Access 2007 veya sonraki bir sürümde, Tasarım sekmesinin Denetimler grubunda Birleşik Giriş Kutusu'na tıklayın ve ardından frmComboTest formuna tıklayın. Oluşturucu Seç iletişim kutusunda Birleşik Giriş Kutusu Sihirbazı'na ve ardından Tamam'a tıklayın.

    1. Birleşik Giriş Kutusu Sihirbazı iletişim kutusunda, birleşik giriş kutumda seçtiğim değere göre formumda kayıt bul seçeneğini belirleyin ve ardından İleri'ye tıklayın.
    2. ProductID ve ProductName alanlarını seçin ve ardından İleri'ye tıklayın.
    3. Son'a tıklayın.

    Birleşik Giriş Kutusu Sihirbazı aşağıdakine benzer bir olay yordamı oluşturur:

    Private Sub Combo0_AfterUpdate()
         ' Find the record that matches the control.
         Dim rs As Object
    
     Set rs = Me.Recordset.Clone
         rs.FindFirst "[ProductID] = " & Str(Nz(Me![Combo20], 0))
         If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    
  4. Form görünümünde frmComboTest formunu görüntüleyin.

    Birleşik giriş kutusunda bir ürün adı seçtiğinizde, seçtiğiniz ürünün kaydına taşındığınıza dikkat edin.

Yöntem 2

  1. Yöntem 1'in 2. adımında açıklandığı gibi Otomatik Form: Sütun Sihirbazı'nı kullanarak Ürünler tablosunu temel alan yeni bir form oluşturun ve ardından formu frmComboTest2 olarak kaydedin.

  2. frmComboTest2 formunun Özellik Sayfası sayfasında, Veri sekmesindeki Filter özelliğini olarak [ProductName] = Forms![frmComboTest2]![cboLookup]ayarlayın.

  3. cboLookup adlı ilişkisiz bir birleşik giriş kutusu ekleyin ve denetimin özelliklerini aşağıdaki gibi ayarlayın:

    Combo Box
    -----------------------------------------------------
    ControlName: cboLookup
    ControlSource: <leave blank>
    RowSourceType: Table/Query
    RowSource: Select [ProductName] from Products;
    BoundColumn: 1
    ColumnWidths: 1"
    AfterUpdate: mcrLocateProduct
    
  4. mcrLocateProduct adlı aşağıdaki makroyu oluşturun:

    Action
    --------------------------------------
    SetValue
    Requery
    
    mcrLocateProduct Actions
    --------------------------------------
    SetValue
    Item: Forms![frmComboTest2].FilterOn
    Expression: True
    

    frmComboTest2 formunu açıp cboLookup birleşik giriş kutusundan bir ürün adı seçtiğinizde filtrenin bu değere ayarlandığına dikkat edin.

Yöntem 3

  1. Yöntem 1'in 2. adımında açıklandığı gibi Otomatik Form: Sütun Sihirbazı'nı kullanarak Ürünler tablosunu temel alan yeni bir form oluşturun ve ardından formu frmSub olarak kaydedin.

  2. frmSub formunun Özellik Sayfası sayfasında, Biçimsekmesindeki Varsayılan Görünüm özelliğini Tek Form olarak ayarlayın.

  3. Yeni bir form oluşturun (herhangi bir tablo veya sorguyu temel almaz) ve frmMain olarak kaydedin. Ardından bir birleşik giriş kutusu ekleyin ve özelliklerini aşağıdaki gibi ayarlayın:

    Combo Box
    ----------------------------
    ControlName: cboLookup
    ControlSource: <leave blank>
    RowSourceType: Table/Query
    RowSource: Products
    ColumnCount: 4
    ColumnWidths: 0";2"
    BoundColumn: 1
    
  4. frmSub formunun Alt Form denetimini ekleyin.

    • Tasarım>Alt Formu/Alt Raporu'na gidin ve Alt Form Sihirbazı'nı iptal edin.
    • frmSub öğesini gezinti bölmesinden sürükleyip frmMain formuna bırakın.
  5. Alt form denetimi özelliklerini aşağıdaki gibi ayarlayın:

    Subform
    ----------------------------
    LinkChildFields: [ProductID]
    LinkMasterFields: cboLookup
    

    Access, cboLookup denetimindeki değeri değiştirerek alt formdaki kayıtların birleşik giriş kutusuyla eşleşmesini sağlar.

    Northwind örnek veritabanındaki Orders formu bu yöntemi gösterir. Sipariş Ayrıntıları alt formu LinkMasterFields ve LinkChildFields özellikleriyle ilişkilidir.

Yöntem 4: WHERE yan tümcesiyle OpenForm makro eylemini kullanma

  1. Yöntem 1'in 2. adımında açıklandığı gibi Otomatik Form: Sütun Sihirbazı'nı kullanarak Ürünler tablosunu temel alan yeni bir form oluşturun ve ardından formu frmComboTest5 olarak kaydedin.

  2. cboLookup adlı ilişkisiz bir birleşik giriş kutusu ekleyin ve denetimin özelliklerini aşağıdaki gibi ayarlayın:

    Combo Box
    -----------------------------------------------------
    ControlName: cboLookup
    ControlSource: <leave blank>
    RowSourceType: Table/Query
    RowSource: SELECT [ProductID], [ProductName] FROM Products ORDER BY [ProductName];
    BoundColumn: 1
    ColumnCount: 2
    ColumnWidths: 0";1"
    
  3. Makro Oluşturucusu'nda, cboLookup birleşik giriş kutusu için olayda AfterUpdate yeni bir eklenmiş makro oluşturun.

  4. Yeni Eylem Ekle açılan listesinde, OpenForm'ı seçin ve aşağıdaki özellikleri ayarlayın:

    Form Name:   frmComboTest5
    View:        Form
    Filter Name: <leave as empty>
    Where Condition: [ID] = [Forms]![frmComboTest5]![cboLookup].value
    Data Mode: <optional>
    Window Mode: <optional>
    
  5. Makroyu kaydedin ve kapatın.

  6. Formu kaydedin ve çalıştırın.

Birleşik giriş kutusunun değerini değiştirdikten sonra form kapatılır ve filtre uygulanmış olarak yeniden açılır.