+ -
当前位置:首页 → 问答吧 → Excel OLE DB查询中 代码语句意义不明的问题?

Excel OLE DB查询中 代码语句意义不明的问题?

时间:2010-12-13

来源:互联网

在将excel表查询通过OLE DB方式添加到access数据库中时,如下代码意义难以理解,希望高手们给予解答和展开。

代码例子:(来源:http://club.excelhome.net/viewthread.php?tid=166955&highlight=%2Bnawong  3楼实例)
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\DBBASE.MDB;" & _
   "Jet OLEDB:Engine Type=4"
conn.Execute ("delete * from TableB")
sqlString = "INSERT INTO [TableB] SELECT * FROM [Excel 8.0;DATABASE=" & _
ThisWorkbook.FullName & ";HDR=YES].[ExportToExcel$];"

1、语句中的[]符号怎么用,用在何处?
2、$怎么用,用在何处?
3、里面的“& ; ”两个符号感觉使用很混乱,不知道有什么规则,也希望给解答一下。
4、当excel列字段中设置为文本属性,如果既有字母又有数字时,导入到access后,字母总是无法显示,希望高手给予解答。

[ 本帖最后由 lengyff 于 2010-12-13 16:09 编辑 ]

作者: lengyff   发布时间: 2010-12-13

[]是用来括住EXCEL表名的

$是放在表名后的,这两个都是固定用法。

&就是个连接符而已,没什么特别的。

试试在HDR=YES后加个imex=1,用分号隔开

作者: wudixin96   发布时间: 2010-12-13

这种用法比较特别,一般的 [Excel 8.0;DATABASE=" & _
ThisWorkbook.FullName & ";HDR=YES]是放到数据库连接字符串中的。

作者: wudixin96   发布时间: 2010-12-13

谢谢楼上二位的回答,有点明白了。顺便找到了微软支持库关于这方面的文章如下:
http://support.microsoft.com/kb/316934

表命名规则
您可以通过若干种方式引用 Excel 工作簿中的表(或区域):
使用工作表名称后面跟一个美元符号(例如 [Sheet1$] 或 [My Worksheet$])。以此方式引用的工作簿包括工作表的整个使用区域。
Select * from [Sheet1$]
使用带有定义名称的区域(例如 [MyNamedRange]):
Select * from [MyNamedRange]
使用带有特定地址的区域(例如 [Sheet1$A1:B10]):
Select * from [Sheet1$A1:B10]
注意:工作表名称后面带美元符号表示该表存在。如果您要创建一个新表,如本文 创建新工作簿和表 一节中所讨论的那样,请不要使用美元符号。

作者: lengyff   发布时间: 2010-12-13