EXCEL中与Microsoft OLE DB提供程序的Jet 4.0的SQL中的任何参考/手册?

EXCEL中是否有与Microsoft OLE DB Provider for Jet 4.0连接的SQL语法参考手册?

例如,我该如何编写datetypes的常量?

什么关键字/函数/子句可用?

当使用Excel作为Jet 4.0数据源时,我所知道的最佳参考是:

如何使用Visual Basic或VBA中的Excel数据使用ADO 。

特别重要的是,当包含混合数据types时,如何确定现有列的整体数据types 。

至于Jet 4.0的Microsoft OLE DB Provider,最相关的文章是这样的:

ADO提供程序属性和设置:Microsoft Jet 4.0提供程序属性

也就是说,在前面的文章中更好地介绍了Excel特有的细节。

使用Excel和SQL时应该注意的一个重要问题:

BUG:当您通过使用ActiveX数据对象(ADO)查询打开的Excel工作表时发生内存泄漏

什么关键字/函数/子句可用?

至于使用Jet 4.0 SQL,这篇文章是我见过的最好的:

中级Microsoft Jet 4.0 SQL

从理论上讲, Access Help中的SQL部分应该是相关的,但是质量特别低,而且Jet 4.0特别受到较差的覆盖。

再说一遍,不是所有的东西都能直接在Excel中工 例如,尽pipe您可以使用CREATE TABLE SQL DDL来创build一个新的工作表和工作簿,但不能创build一个NOT NULL能力列,因为这在物理上是不可能的。 此外,Excel的数据types不太精细,例如大多数数字types映射到DOUBLE FLOAT

至于可以在SQL中使用的expression式,Jet 4.0expression式服务以某种方式使用VBAexpression式服务。 一般来说,Jet可以使用任何VBA 5.0(不是最新版本,是VBA 6.0)函数,它不是一个调用值的方法,并返回一个简单的内在数据types的值(无数组,无对象等) )。 我认为我是正确的说,微软从来没有明确发布的Jet 4.0支持的VBAfunction的权威列表。 不过,我相信下面的文章中的列表恰好与Jet 4.0中可用的VBA函数列表完全一致:

如何configurationJet 4.0以防止在Access 2003中运行不安全的函数

(该列表位于子标题“使用Jet 4.0 Service Pack 3及更高版本使用沙盒模式操作”下的表格中。)

请注意,某些函数在Jet 4.0中的行为与在VBA中的行为不同。 关于我的头顶,我可以想到两个。 IIF()可以在Jet 4.0中使用捷径(未logging,AFAIK):在VBA中,评估TRUEFALSE条件,在Jet 4.0中只评估匹配条件。 在Jet 4.0中, CDEC() (转换为DECIMAL )函数被破坏 。

我如何编写datetypes的常量? 我的意思是,在SQL中expression2011.01.20(这个常数值)的方法,例如,我使用'2011-01-20',还是#2011-01-20#或其他?

我知道这是一个“字面值”。

这与VBA相同,即#m/d/yyyy# ,所以今天的date是#1/20/2011# 。 但是,我更喜欢使用ISO 8601date格式和单引号(为了便于携带),并且始终包含时间字段(因为Jet 4.0只有一个时间数据types,为DATETIME ),为确保区域设置得到遵守,请使用CDATE()投到DATETIME函数,例如今天的date将是CDATE('2011-01-20 00:00:00')


[原本认为OP的意思是“如何创buildDATEtypes的列?”]

你可以使用CREATE TABLE DDL例如

 CREATE TABLE [Excel 8.0;DATABASE=C:\MyNewWorkbook.xls].MyTable ( my_date_col DATETIME ); 

请注意,虽然Jet 4.0将遵守DATETIME的数据types,但在Excel中编辑工作簿时不存在此类约束:如果表格Range已扩展且添加了非时间数据,则Jet 4.0的“看到”数据types可能会更改结果是。


什么关键字/函数/子句可用?

关于function列表,我在MSMDCB80.DLL文件中find了以下名称列表:

YEAR, WEEKDAY, VarType, Val, UCase$, UCase, TypeName, TRIM$, TRIM, TIMEVALUE, TimeSerial, Timer, TIME$, TIME, TAN, SYD, Switch, String$, String, StrConv, StrComp, Str$, Str, Sqr, Space$, Space, SLN, SIN, Sgn, SECOND, RTrim$, RTrim,Round, Rnd, RIGHTB$, RIGHTB, RIGHT$, RIGHT, RGB, RATE, QBColor, PV, PPMT, PMT, Partition, Oct$, Oct, NPV, NPER, NOW, MONTH, MIRR, MINUTE, MIDB$, MIDB, MID$, MID, LTrim$, LTrim, LOG, LENB, LEN, LEFTB$, LEFTB, LEFT$, LEFT, LCase$, LCase, IsObject, IsNumeric, IsNull, ISERROR, IsEmpty, IsDate, IRR, IPMT, INT, InStr, IMEStatus, IIF, HOUR, Hex$, Hex, Fv, Format$, Format, Fix, EXP, Error$, Error, DDB, Day, DATEVALUE, DATESERIAL, DatePart, DateDiff, DATEADD, DATE$, Date, CVErr, CvDate, CVAR, CSTR, CSNG, COS, CLNG, CINT, CHRW$, CHRW, CHRB$, CHRB, CHR$, CHR, Choose, CDBL, CDATE, CCUR, CBYTE, CBOOL, ATN, ASCW, ASCB, ASC, Array, ABS

他们的论点和描述可以在这里find

每个函数都在我的SQL查询中工作,所以我想这是125个函数的综合列表。