设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2380|回复: 8
打印 上一主题 下一主题

[查询] 请问导出语句select * into from结构是怎样的

[复制链接]
跳转到指定楼层
1#
发表于 2009-12-12 12:50:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问导出语句select * into from结构是怎样的?比如各个位置的参数,如果要把ACCESS数据导到Excel表中,(1)数据所在的工作表标签命名为XXX月报表;(2)同时导出ACCESS中的“表1”和“表2”数据到同一个EXCEL工作簿中,且分开不同的工作表,如何用这个语句简单地写代码呢?谢谢。最想知道这个语句的各位置参数及其意义。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-12-12 12:54:11 | 只看该作者
DoCmd.OutputTo acTable, "", "MicrosoftExcelBiff5(*.xls)", "文件名", False, "", 0
3#
 楼主| 发表于 2009-12-12 13:06:35 | 只看该作者
谢谢,请看一位高手用select * into from语句导出到Excel工作簿中的例子,也很简单,只是没有可以分到一个簿的两个工作表中,不知可否用这个语句实现:
dim cllbdrcx as string
cllbdrcx="产品类别"
  sqlr2 = "select * into [Excel 4.0;database=" & patha & "\导入Excel\拨入资料查询.xls]." & cllbdrcx & " from 拨入临时表 "
  CurrentProject.Connection.Execute (sqlr2)
上个语句中用到了Excel的版本,用到了database,中是还写了个"& cllbdrcx &",这个起什么作用呢?
4#
发表于 2009-12-12 17:53:30 | 只看该作者
sheet的名称。
经过测试4.0似乎不能更改sheet名称,用一下的代码可以
Private Sub Command0_Click()
    Dim cllbdrcx As String
    Dim sqlr2 As String
    cllbdrcx = "产品类别"
    sqlr2 = "select * into [Excel 8.0;database=" & CurrentProject.Path & "\TEST.xls]." & cllbdrcx & " from 表1 "
    CurrentProject.Connection.Execute (sqlr2)
End Sub
把表1的内容导出到当前路径下的
test.xls,sheet名为产品类别
5#
发表于 2009-12-12 18:00:37 | 只看该作者
有了上面的代码,楼主的问题就可以简单解决
Private Sub Command0_Click()
    Dim cllbdrcx1 As String
    Dim sqlr1 As String
    Dim cllbdrcx2 As String
    Dim sqlr2 As String

    cllbdrcx1 = "产品类别1"
    cllbdrcx2 = "产品类别2"
    sqlr1 = "select * into [Excel 8.0;database=" & CurrentProject.Path & "\TEST.xls]." & cllbdrcx1 & " from 表1 "
    sqlr2 = "select * into [Excel 8.0;database=" & CurrentProject.Path & "\TEST.xls]." & cllbdrcx2 & " from 表2 "

    CurrentProject.Connection.Execute (sqlr1)
    CurrentProject.Connection.Execute (sqlr2)

End Sub
把表1和表2的记录导出到test.xls,并且fensheet保存,
名称为产品类别1,产品类别2
6#
 楼主| 发表于 2009-12-12 18:56:34 | 只看该作者
跪谢chaojianan 同志了,为这个问题,我用“导出”搜了论坛到2004年的贴子,都没有解决问题,我也试过两次执行select * into,但确实如chaojianan 所说是因为Excel4.0不能更改sheet名称!!!原来是这个原因。
另外跟大家共享一下,我试过OutputTo,和TransferSpreadsheet,结果是前者执行两次只得到后一次的结果(后保存的sheet和簿),还有网友称用此法导出到20000条记录就出现问题......后者TransferSpreadsheet可以得到一个簿两个表,写法如下:
Dim xscx As String, thcx As String
xscx = "销售明细"
thcx = "退货明细"
  DoCmd.TransferSpreadsheet acExport, 8, "销售临时表", "" & patha & "\导入Excel\销售明细查询.xls", True, xscx  '(即:销售明细)
  DoCmd.TransferSpreadsheet acExport, 8, "销售退货临时表", "" & patha & "\导入Excel\销售明细查询.xls", True, thcx  '(即:退货明细)
问题是在TransferSpreadsheet 的帮助中,True或false后面的参数range代表电子表格中的单元格范围或范围的名称,空缺时代表全部导入,但在实际执行中,后面的值变成了簿中表的工作表标签。。。
7#
 楼主| 发表于 2009-12-12 19:01:16 | 只看该作者
本帖最后由 xryacc2 于 2009-12-12 19:03 编辑

另外请问下Excel 8.0是什么版本,当保存一个Excel表时,发现Excel5.0是95版本?Excel 8.0是2003版么,这样理解6.0像是97-2000版?
8#
发表于 2009-12-12 19:46:57 | 只看该作者
Excel 95 工作簿(Excel 版本 7.0),应指定 Excel 5.0;对于 Excel 97、Excel 2000 或 Excel 2002 (XP) 工作簿(Excel 版本 8.0、9.0 和 10.0),应指定 Excel 8.0 版本。
否则会提示ISAM错误.
9#
 楼主| 发表于 2009-12-12 20:24:05 | 只看该作者
本帖最后由 xryacc2 于 2009-12-12 20:25 编辑

难怪我装了2003版后,改Excel 6.0,Excel 7.0,都不行(不向下兼容),如你提示的错误,发现指定Excel 5.0,Excel8.0才可以,9.0,10.0,11.0没试过。这些版本和工程窗口中“引用”中涉及的版本是一致的。
万谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 01:38 , Processed in 0.097467 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表