用ODBC连接ACCESS数据库,对话框显示不了数据库

我设计了一个CDatabaseDlg对话框,想在对话框的列表框上显示数据,

这个是CDatabaseDlg的构造函数,m_pSet是数据库类CMySet的一个对象
CDatabaseDlg::CDatabaseDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDatabaseDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDatabaseDlg)
m_Name = _T("");
//}}AFX_DATA_INIT
if(m_pSet.IsOpen())
{
m_pSet.Close();
}
m_pSet.Open();
}

初始化函数
BOOL CDatabaseDlg::OnInitDialog() 
{
CDialog::OnInitDialog();
m_pSet.MoveFirst();
while(!m_pSet.IsEOF())
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(m_pSet.m_Name);
m_pSet.MoveNext();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
为什么不能在列表框上显示数据库呢?每次我点击对应的菜单选项都会卡死。是什么问题呢?

作者: yidao3504   发布时间: 2011-06-15

Loaded 'C:\Program Files\Common Files\Microsoft Shared\OFFICE12\ACEWDAT.DLL', no matching symbolic information found.
Warning: no listbox item selected.

显示这个错误

作者: yidao3504   发布时间: 2011-06-15

if(m_pSet.IsOpen())
{
m_pSet.Close();
}
m_pSet.Open()
不要放在构造函数里。都放到OnInitDialog()中。

作者: diyoosjtu   发布时间: 2011-06-17