Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请教,导入excle表中部分字段的代码

风语  发表于:2011-04-11 12:58:36  
复制

整张EXCEL表全部字段导入到ACCESS的应该是下面的代码(红尘大侠的案例)

Insert INTO 表名 Select * FROM [Excel 8.0;DATABASE=E:\桌面\测试数据.xls].[Sheet1$]"

但我仅要导入excle表中的部分字段,因此改为

 

insert into 表名 Select [字段4], [字段5],[字段6],[字段7],[字段8],[字段9] from [Excel 8.0;DATABASE=E:\桌面\测试数据.xls].[Sheet1]

 

运行时老报错"[字段4]循环引用",请教是什么原因,正确的代码应该怎么写。

 

还有,我要引入到字段是excel中连续的10个列,有没有什么简单方法不要一一列举出字段名?

如果excel表没有表头又该怎么写代码?

请赐教,谢谢。

 

Top
煮江品茶 发表于:2011-04-11 14:06:19

1、所提问题与导出无关,可能是字段4为一个表达式,该表达式中引用了名为字段4的字段变量。解决的办法是在被引用的变量前加表名称和点运用符,或者将表达式命名为另外的一个名称。

2、注意红尘同志的SQL语句在Sheet1上的处理,也就是最好加上$符号,如果不加此字符,你要导入到sheet2或者其他表中可能行不通。$是红尘同志的重大贡献,可命名为:“红尘符”。

3、可以不依依列举字段名称,具体方法有多种,比如可以用ado记录集的fileds数组来得到需导出的字段列表,也可以将字段按照一定规律进行命名后构造sql语句,还可以事先建立一个仅包含要要导出字段的查询。办法多种多样,找一个自己熟悉的方法即可。



风语 发表于:2011-04-11 21:22:39

我修改成

insert into 表名([字段4], [字段5],[字段6],[字段7],[字段8],[字段9]) Select [字段4], [字段5],[字段6],[字段7],[字段8],[字段9] from [Excel 8.0;DATABASE=E:\桌面\测试数据.xls].[Sheet1$]   后可以正常导入了。

 

不知道为什么表名后面的括号中非得列举字段,这样我就得每个字段都要写两遍很罗嗦而且造成代码很长,其实我的表名中的所有字段都必须从excel中导入的(excel的字段比access表字段多,),我把代码存储在另一个表中,代码长度超出255字节了,看着累也容易写错。



总记录:2篇  页次:1/1 9 1 :