有关使用Microsoft OLE DB Provider for Jet 4.0的EXCEL中SQL的任何参考/手册吗?

dee*_*hao 8 sql oledb excel

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

例如,如何编写日期类型的常量?

有哪些关键字/功能/条款?

one*_*hen 20

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

如何将ADO与Visual Basic或VBA中的Excel数据一起使用.

特别重要的是如何在包含混合数据类型时确定现有列的整体数据类型.

至于Jet 4.0的Microsoft OLE DB提供程序,最相关的文章是这样的:

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中使用.例如,虽然您可以使用CREATE TABLESQL DDL创建新工作表和工作簿,但您无法创建可用NOT NULL列,因为这在物理上是不可能的.此外,Excel的数据类型不那么精细,例如大多数数字类型映射到DOUBLE FLOAT.

至于可以在SQL中使用的表达式,Jet 4.0表达式服务以某种方式使用VBA表达式服务.从广义上讲,Jet可以使用任何VBA 5.0(不是最新版本,即VBA 6.0)函数,它不是一个involes值的方法,并且返回只返回单个值,只有简单的内部数据类型(没有数组,没有对象等) ).我认为我没说明微软从未明确公布过Jet 4.0支持的VBA功能的确切列表.但是,我相信下面文章中的列表恰好与Jet 4.0中可用的VBA函数列表完全一致:

如何配置Jet 4.0以防止在Access 2003中运行不安全的功能

(该列表位于子标题"使用Jet 4.0 Service Pack 3及更高版本的Sandbox模式操作"下的表格中.)

请注意,某些函数在Jet 4.0中的行为与在VBA中的行为不同.在我的头顶,我可以想到两个.IIF()可以在Jet 4.0中快捷方式(未记录,AFAIK):在VBA中,评估两者TRUE和FALSE条件,在Jet 4.0中仅评估匹配条件.CDEC()(转换为DECIMAL)功能在Jet 4.0中被破坏.

如何编写日期类型的常量?我的意思是,在SQL中表达2011.01.20(这个常量值)的方式,例如,我使用'2011-01-20',还是#2011-01-20#,还是其他什么?

我知道这是一个"文字价值".

这与VBA相同,即#m/d/yyyy#今天的日期#1/20/2011#.但是,我更喜欢使用ISO 8601日期格式和单引号(用于可移植性)并始终包含时间字段(因为Jet 4.0只有一种时态数据类型DATETIME),并且为了确保区域设置得到尊重,请使用CDATE()强制转换DATETIME功能例如,今天的日期将是CDATE('2011-01-20 00:00:00').


[最初认为OP意味着,"我如何创建一个类型的列DATE?"]

你可以使用CREATE TABLEDDL,例如

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

请注意,虽然Jet 4.0将遵循数据类型DATETIME,但在Excel中编辑工作簿时没有这样的约束:如果Range扩展表并添加非时态数据,则Jet 4.0"看到"的数据类型可能会更改为结果.



小智 7

有哪些关键字/功能/条款?

关于函数列表,我在文件中找到了以下名称列表MSMDCB80.DLL:

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

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

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

  • StackOverflow:弥补自2008年以来的供应商懒惰 (3认同)