Aracılığıyla paylaş


İkinci Kayıt Kümesinden Liste Kutusunu Doldurma (MFC Veri Erişimi)

Varsayılan olarak, bir kayıt görünümü, alanları kayıt görünümünün denetimlerine eşlenen tek bir kayıt kümesi nesnesiyle ilişkilendirilir. Bazen kayıt görünümünüzde bir liste kutusu veya birleşik giriş kutusu denetimi koymak ve ikinci kayıt kümesi nesnesindeki değerlerle doldurmak isteyebilirsiniz. Kullanıcı, kayıt görünümünde görüntülenecek yeni bir bilgi kategorisi seçmek için liste kutusunu kullanabilir. Bu konu başlığı altında bunun nasıl ve ne zaman yapılacağını açıklanmaktadır.

İpucu

Veri kaynağından birleşik giriş kutusu veya liste kutusu doldurmanın yavaş olabileceğini unutmayın. Kayıt kümesindeki bir denetimi çok sayıda kayıtla doldurmaya çalışırken önlem alın.

Bu konunun modeli formunuzun denetimlerini dolduran birincil kayıt kümesinden, ikincil kayıt kümesi ise liste kutusunu veya birleşik giriş kutusunu doldurur. Liste kutusundan bir dize seçmek, programınızın birincil kayıt kümesini seçilene göre yeniden sorgulamasına neden olur. Aşağıdaki yordamda birleşik giriş kutusu kullanılır, ancak liste kutusuna eşit olarak uygulanır.

İkinci kayıt kümesinden birleşik giriş kutusunu veya liste kutusunu doldurmak için

  1. Kayıt kümesi nesnesini (CRecordset) oluşturun.

  2. Birleşik giriş kutusu denetimi için CComboBox nesnesine yönelik bir işaretçi alın.

  3. Önceki içeriklerin birleşik giriş kutusunu boşaltın.

  4. Birleşik giriş kutusuna eklemek istediğiniz geçerli kayıttan her dize için CComboBox::AddString çağrısı yaparak kayıt kümesindeki tüm kayıtlar arasında ilerleyin.

  5. Birleşik giriş kutusunda seçimi başlatın.

void CSectionForm::OnInitialUpdate()
{
    // ...

    // Fill the combo box with all of the courses
    CENROLLDoc* pDoc = GetDocument();
    if (!pDoc->m_courseSet.Open())
        return;

    // ...

    m_ctlCourseList.ResetContent();
    if (pDoc->m_courseSet.IsOpen())
    {
        while (!pDoc->m_courseSet.IsEOF() )
        {
            m_ctlCourseList.AddString(
                pDoc->m_courseSet.m_CourseID);
            pDoc->m_courseSet.MoveNext();
        }
    }
    m_ctlCourseList.SetCurSel(0);
}

Bu işlev, m_courseSetsunulan her kurs için bir kayıt içeren ikinci bir kayıt kümesi ve kayıt görünümü sınıfında depolanan bir CComboBox denetim m_ctlCourseListkullanır.

İşlev belgeden alır m_courseSet ve açar. Ardından boşaltıp m_ctlCourseList kaydırarak öğesinin üzerinden geçer m_courseSet. Her kayıt için işlev, kayıttan kurs kimliği değerini eklemek için birleşik giriş kutusunun AddString üye işlevini çağırır. Son olarak kod, birleşik giriş kutusunun seçimini ayarlar.

Ayrıca bkz.

Kayıt Görünümleri (MFC Veri Erişimi)
ODBC Sürücü Listesi