当程序运行到(1)时就会跳出如下提示:“Microsoft Jet 数据库引擎找不到输入表
或查询‘Am2003’。确定它是否存在,以及它的名称的拼写是否正确。”
不知道是什么原因,急死我了,哪位帮我一下哦,谢谢!!!//创建表并把上一年未记帐的记录移到新表中
void CPageAmmeter::CreatTable()
{
CString strLast,strThis;
int iLast,iThis;
iThis=CurrentTime.GetYear();
strThis.Format("%d",iThis);
if(m_comboYear.FindString(-1,strThis)==CB_ERR)
{
// 通过ODBC打开数据库
const char strDSN[]="Base";//指定你的ODBC数据源名称
CDatabase database;
try
{
if( !database.Open(strDSN) )
AfxMessageBox("不能联接指定的数据库!");;
}
catch(CDBException * e)
{
AfxMessageBox(e->m_strError);
}
// 创建表结构
CString sSql,sTName;
sTName="Am";
sTName+=strThis;
sSql.Format("CREATE TABLE %s (流水号 COUNTER,名称 TEXT,底码 FLOAT,底码2 FLOAT,底码3 FLOAT,电价 CURRENCY,金额 CURRENCY,审核日期 DATETIME,记帐日期 DATETIME,备注 TEXT)",sTName);
database.ExecuteSQL(sSql);
// 关闭数据库
database.Close(); //把上一年未记帐的记录移到新表中
iLast=iThis-1;
strLast.Format("%d",iLast);
if(m_comboYear.FindString(-1,strLast)!=CB_ERR)
{
CAmRecordset AmSet2;
sTName="Am";
sTName+=strLast;
//得到上年未记帐的记录
AmSet2.Open(AFX_DB_USE_DEFAULT_TYPE,sTName);
AmSet2.m_strFilter="year(记帐日期)=1979";
AmSet2.m_strSort="名称";
AmSet2.Requery();
AmSet2.MoveFirst(); sTName="Am";
sTName+=strThis;
(A)>>> m_AmSet.Open(AFX_DB_USE_DEFAULT_TYPE,sTName); //上年未记帐记录移到今年
do
{
m_AmSet.AddNew();
m_AmSet.m_column2=AmSet2.m_column2;
m_AmSet.m_column3=AmSet2.m_column3;
m_AmSet.m_column4=AmSet2.m_column4;
m_AmSet.Update();
AmSet2.MoveNext();
} while(!AmSet2.IsEOF());
m_AmSet.Close();
AmSet2.Close();
}
}
}