我用向导建了一个与数据库连接的project,添入了列表框并初始化列表框。
void CSalaryView::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_salarySet;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit(); m_list_all.InsertColumn(0,"实发工资",LVCFMT_LEFT,100);
m_list_all.InsertColumn(0,"住房公积金",LVCFMT_LEFT,100);
m_list_all.InsertColumn(0,"福利补贴",LVCFMT_LEFT,100);
m_list_all.InsertColumn(0,"加班工资",LVCFMT_LEFT,100);
m_list_all.InsertColumn(0,"基本工资",LVCFMT_LEFT,100);
m_list_all.InsertColumn(0,"姓名",LVCFMT_LEFT,50);
m_list_all.InsertColumn(0,"部门",LVCFMT_LEFT,50); LoadFromDb();}想用LoadFromDb()导入记录到列表框中。如下:BOOL CSalaryView::LoadFromDb()
{
CDatabase *p_Database;
p_Database=new CDatabase;

p_Database->SetLoginTimeout(5); p_Database->Open("Salary"); m_pSet=new CSalarySet(p_Database); CString str; if(!m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,(LPCTSTR)"Salary All"))
{
MessageBox("Open Table SiteData Failed"); if(m_pSet->IsOpen()) m_pSet->Close();
if(p_Database->IsOpen()) p_Database->Close(); delete m_pSet;
delete p_Database;
} if(!m_pSet->IsBOF())
{
m_list_all.DeleteAllItems(); while(!m_pSet->IsEOF())
{
int i=m_list_all.InsertItem(0,m_pSet->m_column1);
m_list_all.SetItemText(i,1,m_pSet->m_column2);
str.Format("%f",m_pSet->m_column3);
m_list_all.SetItemText(i,2,str);
str.Format("%f",m_pSet->m_column4);
m_list_all.SetItemText(i,3,str);
str.Format("%f",m_pSet->m_column5);
m_list_all.SetItemText(i,4,str);
str.Format("%f",m_pSet->m_column6);
m_list_all.SetItemText(i,5,str);
str.Format("%f",m_pSet->m_column7);
m_list_all.SetItemText(i,6,str);
m_pSet->MoveNext();
} m_list_all.UpdateWindow();
} if(m_pSet->IsOpen()) m_pSet->Close();

if(p_Database->IsOpen()) p_Database->Close(); delete m_pSet;

delete p_Database;

return TRUE;
}通过编译,但连接时出现下面的错误:FROM 子句语法错误。
State:37000,Native:-3506,Origin:[Microsoft][ODBC Microsoft Access Driver]Error: ODBC failure on SQLPrepare or SQLExecDirect请问到底是什么问题?怎么处理?我用的是access数据库。请指教。