MFC ADO链接Access 安插一条新的数据

MFC ADO链接Access 插入一条新的数据
想Access表中插入一条新的数据怎么做,我插入新数据没有open函数

_RecordsetPtr m_pRecordset;

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->MoveLast();//移动到记录末尾
        m_pRecordset->AddNew();


       m_pRecordset->PutCollect("InOut_ID",   _variant_t(str));
...
...
...
       m_pRecordset->Update();


我用AddNew添加的新数据  但是遇到几个问题:
1.表中的ID是主键,没有自动自动编号 那我插入的时候怎么就能将新的数据放到最后一列或者最前
2.有一个属性是时间 我怎么在MFC下将系统时间赋给这个列(就像Access下的Now(),MFC的CTime类型不匹配)。

就这两个问题 求大神们帮忙解决:
MFC Access 插入新的一条数据 Now()

------解决方案--------------------
1、Access支持自动编号哈,最好设置一个主键的自动编号。也可以在插入数据前,先查询最大的编号是多少,如 select max(id) from 表,然后给它加1当做新编号,插入数据库,这样只能针对数字的类型。如果ID是字符串的话,就不好处理了,最好还是弄个数字类型的自动编号当做主键。

2、用PutCollect方法可以写入时间,VARIANT类型中有个属性就是时间类型的,你看看MSDN关于这个类型的介绍,MFC中CTime或COleDateTime都可以获取时间,应该可以直接赋值,几年不用MFC都忘光了,现在主要用C#,哈哈,这个简单。
------解决方案--------------------
需要OPEN,也可以直接使用 :
_ConnectionPtr 的 Excute 方法执行SQL 语句,这样你上面的问题都可以解决。
比如插入
CString strSql;
strSql.Format(insert(字段1,字段2,字段3,time) values(插入值1,插入值2,插入值3,now()));

_variant_t RecordsAffected;
m_pConnection->Excute(strSql, RecordsAffected, 0);