Итак, нам пора на диалоговое окно помещать элементы управления. Для этого нужно создать набор записей Set и связать его с диалоговым окном, смотрите "Шаг 26 - Диалог, Foreign Class и классы Recordset". Мы же ужа один раз запускали форму авторы, значит таблица авторы создалась. Она известна нам на этапе проектирования значит во всю можно использовать ClassWizard.

Связываем класс с диалоговым окном, настраивает создание объекта. Все это описано ранее. Foreign Variable - m_pAuthor.У Вас должны выбираться переменные базы данных для связи с элементами управления.

Итак, даем название диалоговому окну, расставляем элементы управления для полей.

При старте окна мы должны попасть на первую запись.
BOOL CDialogAuthor::OnInitDialog()
{
......
db.Close();
try
{
m_pAuthor->MoveFirst(); // на первую
}
catch(...) // а вдруг даже первой нет
{
m_pAuthor->AddNew();
m_pAuthor->Update();
m_pAuthor->MoveFirst(); // упорно идем на первую
UpdateData(FALSE); // показать что там в первой
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
Нам нужна кнопка двигаться вперед. Давайте ее сделаем.

Код будем писать, мол по записям вперед.
void CDialogAuthor::OnButtonNext()
{
try
{
m_pAuthor->MoveNext(); // вперед
if (m_pAuthor->IsEOF()) throw CString(""); // если это последняя то новая нужна
UpdateData(FALSE); // показать что там
}
catch(...) // если последняя то создать новую
{
m_pAuthor->AddNew();
m_pAuthor->Update();
m_pAuthor->MoveLast(); // на последнюю
UpdateData(FALSE); // показать что там
}
}
Теперь есть ли записи, нет ли все будет одинаковое. Если записей нет то она будет создана. Если дошли до конца, то она опять будет создана. Только первое поле у нас счетчик. Его Access автоматически назначает. Значит надо его защитить от редактирования.
