有一个小程序,功能如下:从Excel中读取数据,写入Access后在进行统计。写程序过程中发现如下问题,恳请高手不吝指教,如果您也想知道答案请帮忙Up,谢谢先:1.用OleObject从Excel中读取数据,第一效率太低,读15000左右条数据然后写入Access要4至5分钟,第二当Excel中的行列发生变化如I列和H列互换位置后,再导入,原本Excel.cells[i,9].value是读I列的,现在读H列了,解决办法是在互换后的I列(先为H列)前插入一空列,使其重新成为I列,第三,读个别Excel文件时,读不到Excel的sheet的前一行或几行,但我的循环的确是从1开始的。2.关于Access的问题,第一、在程序的一个过程中,先Delete空一个表再写入,当重复做这一步时,写入Access的记录会有漏记录的情况,但先手工delete却不会发生,请问何故,此情况在我把Access压缩后发现,但压缩前可能也有,第二、也就是我要压缩Access的原因,由于要多次delete大表,所以表容量会经常变化,但delete后容量没有变少,反而不断累积,请问何故,平时比较少用Access,还请指教。
INSERT INTO TABLE1
SELECT CustomerID, CompanyName
FROM [Customers$]
IN "c:\documents\xldata.xls" "EXCEL 5.0;"
WHERE CustomerID Like "A*"
ORDER BY CustomerID
2 不太明白你的意思,先Delete空一个表再写入,怀疑是异步操作所致,用事务试试
3 你压缩数据库可以真正释放不用的空间
Select * Into 表 From [Excel 8.0;Database=c:\abc\].电子表.xls2、未压缩前,Access中Delete数据有的像以前dBase一样,不是真正的从数据库清除,dBase需要再使用命令Pick all,而Access是通过压缩来实现。
试试先;
to fs_windy(雲海飛龍):
那有没有语句可以在程序里压缩Access啊?就像在Dbase里,用pack一样。我现在是手工做的。