首先感谢大家对我的支持,上次的提的一个问题如下:我想调用两张EXCEL表,把它们放在同一个工作簿中,然后在ODBC中设置了指向它的EXCEL工作源,但在DELPHI中的table中却看不到这两张表,请问
怎样调用它们。如果要把它们导入ACCESS中才能调用的话,那应该如何调用呢?我用的是officeXP.回复人: lzf1010(深宇) ( ) :
使用ADOConnection,选择jet驱动,在Extended Properties里填上Excel 8.0
然后选择文件。把ADOConnection的connected设为true。最后把adotable的tabledirect设为true就OK了。这个方法确实可以,但当我按F9运行的时候却出现错误:Microsoft Jet数据库引擎打不开文件,它已被别的用户以独占方式打开,或没有查看数据的权限。
于是我在EXCEL下把这个表格设置成共享,但还是出错,但用EXCEL打开此表格后再运行,结果却可以了,不知何故?该如何处理?谢谢!!还有一个问题:为什么我用ADOConnection和ADOTable,DataSOurce连接一个数据库,如Animals,F9运行出现错误:Could not convert variant of type(Null) into
type(String),但在adotable中把字段全设为永久字段后又可以了呢?有劳各位了!!!
怎样调用它们。如果要把它们导入ACCESS中才能调用的话,那应该如何调用呢?我用的是officeXP.回复人: lzf1010(深宇) ( ) :
使用ADOConnection,选择jet驱动,在Extended Properties里填上Excel 8.0
然后选择文件。把ADOConnection的connected设为true。最后把adotable的tabledirect设为true就OK了。这个方法确实可以,但当我按F9运行的时候却出现错误:Microsoft Jet数据库引擎打不开文件,它已被别的用户以独占方式打开,或没有查看数据的权限。
于是我在EXCEL下把这个表格设置成共享,但还是出错,但用EXCEL打开此表格后再运行,结果却可以了,不知何故?该如何处理?谢谢!!还有一个问题:为什么我用ADOConnection和ADOTable,DataSOurce连接一个数据库,如Animals,F9运行出现错误:Could not convert variant of type(Null) into
type(String),但在adotable中把字段全设为永久字段后又可以了呢?有劳各位了!!!
我是这样做的,用vba将excel文件令存为txt,或者dbf文件再操作
这样就简单多了!
于是我在EXCEL下把这个表格设置成共享,但还是出错,但用EXCEL打开此表格后再运行,结果却可以了,不知何故?该如何处理?谢谢!!------------------
我想,出现这个问题的原因是因为你直接在DELPHI的环境下按F9编译运行程序,才会出这样的问题的,如果你先BUILD这个项目,接着关闭DELPHI中打开的所有项目;然后,在资源管理器中运行你刚才编译的程序,应该就不会出现这样的问题了。
原因:DELPHI打开一个工程的时候,你的EXCEL文件也就被打开了一次了!
还有一个问题:为什么我用ADOConnection和ADOTable,DataSOurce连接一个数据库,如Animals,F9运行出现错误:Could not convert variant of type(Null) into
type(String),但在adotable中把字段全设为永久字段后又可以了呢?---------------------这个问题是因为,有些EXCEL单元中的内语句容是空的,如果碰上这样的问题的话,在beforescroll事件中写:
if fields.fields[0].value = null then
fields.fields[0].value := '';
{以上代码没有经过验证,不敢负责是一定对的}
對于此類問題應有三種方法.
1.lzf1010(深宇) 說的那種,(這種很方便)
2.我上次回答你問題的那種.(也可行.不過要寫一些代碼)
3.直接用sql2000的導入導出數據功能也是可以的.
希望你明白了這些做法.
if fields.fields[0].isnull then
...
如:
if (dbgrid1.Fields [7].IsNull) then
begin
dbgrid1.Fields[7].Value:=0;
end;
不能按F9运行,但Drate(鸟窝里的虫)回答的第二个问题,有点误会了,那个ANIMALS数据表不是
EXCEL文件,是DELPHI附带的例表,dBase类型的,我重新试了一下,还是不行--按F9,于是
便试着保存并运行,--没有关闭DELPHI的工程,结果竟--然--可以了,不知怎么回事?