设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] [求助]关于导出

[复制链接]
跳转到指定楼层
1#
发表于 2005-3-10 23:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Private Sub ExportEmp_Click()

Dim sqlstr As String

Dim sqlstr2 As String

Dim sqlstr3 As String

Dim sqlstr4 As String



On Error GoTo Err_ExportEmp_Click





sqlstr = "CREATE table ExportEmployee (empno Number,name text," _

& "position text,dept text,supervisor text,SD Datetime,lastreviewby text," _

& "lastreviewdate datetime,salary number,jobgrade text,quartile number,OBJA memo,OBJQ memo);"

DoCmd.RunSQL sqlstr





sqlstr2 = "insert into ExportEmployee select * from Employee"

If (Forms!ExportEmployee!empno.Value <> 0) Then

   sqlstr3 = "empno=" & Forms!ExportEmployee!empno.Value

End If

If (Forms!ExportEmployee!name.Value <> "") Then

   If (sqlstr3 <> "") Then

      sqlstr3 = sqlstr3 & " and "

   End If

sqlstr3 = sqlstr3 & "name='" & Forms!ExportEmployee!name.Value & "'"

End If

If (Forms!ExportEmployee!SDfrom.Value <> "") Then

   If (sqlstr3 <> "") Then

      sqlstr3 = sqlstr3 & " and "

   End If

   sqlstr3 = sqlstr3 & "SD>=" & "#" & Forms!ExportEmployee!SDfrom.Value & "#"

End If



If (Forms!ExportEmployee!SDto.Value <> "") Then

   If (sqlstr3 <> "") Then

      sqlstr3 = sqlstr3 & " and "

   End If

   sqlstr3 = sqlstr3 & "SD<=" & "#" & Forms!ExportEmployee!SDto.Value & "#"

End If

If (Forms!ExportEmployee!dept.Value <> "") Then

   If (sqlstr3 <> "") Then

      sqlstr3 = sqlstr3 & " and "

   End If

   sqlstr3 = sqlstr3 & "dept='" & Forms!ExportEmployee!dept.Value & "'"

End If

sqlstr3 = sqlstr2 & " where " & sqlstr3 & ";"

  If IsNull(Forms!ExportEmployee!empno.Value) And IsNull(Forms!ExportEmployee!name.Value) And IsNull(Forms!ExportEmployee!SDfrom.Value) And _

     IsNull(Forms!ExportEmployee!SDto.Value) And IsNull(Forms!ExportEmployee!dept.Value) Then

       sqlstr = sqlstr2 & ";"

       DoCmd.RunSQL sqlstr

  Else

       DoCmd.RunSQL sqlstr3

  End If

  

DoCmd.OutputTo acOutputTable, "ExportEmployee", acFormatXLS, , True

DoCmd.Close acForm, "ExportEmployee"

sqlstr4 = "drop table ExportEmployee;"

DoCmd.RunSQL sqlstr4



Exit_ExportEmp_Click:

Exit Sub

Err_ExportEmp_Click:

'MsgBox Err.description

sqlstr4 = "drop table ExportEmployee;"

DoCmd.RunSQL sqlstr4

Resume Exit_ExportEmp_Click

End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2005-3-11 00:08:00 | 只看该作者
以上那段代码大致是这样:

1。构造一个数据表结构,这个数据表也就是ExportEmployee,它和数据库中的Employee表的字段完全一样,个数和字段名和次序都是完全一样的。2。在ExportEmployee表中插入数据,数据是从Employee中来得。根据窗体中设置的搜索条件,去Employee表中查询复合条件的记录插入到ExportEmployee表中。3。将ExportEmployee表以excel的格式输出,然后关闭ExportEmployee窗体(供选择搜索条件用)。4。删除刚才新建的ExportEmployee表。我的问题是,难道ExportEmployee表的结构一定要和Employee表一模一样?后来,我改动了Employee表,只是在最后增加了一个字段,导出就不能执行。什么原因?
3#
发表于 2005-3-11 00:44:00 | 只看该作者
为什么要这么复杂?access是可以直接以查询做数据源来导出的,因此不需要建立临时表在追加记录再删除临时表这一大堆的代码的。
4#
 楼主| 发表于 2005-3-11 17:38:00 | 只看该作者
以下是引用青青在2005-3-10 16:44:08的发言:



为什么要这么复杂?

access是可以直接以查询做数据源来导出的,因此不需要建立临时表在追加记录再删除临时表这一大堆的代码的。



哦?请详细说说看。小女子没有经验,所以想出这个办法。不过这个办法这个论坛的人也有提过,正好不谋而合。
5#
发表于 2005-3-11 19:02:00 | 只看该作者
在宏里您选“OutputTo”的宏命令,下面有选项,根据选项来做就行了。右下角不都有提示吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-12 06:57 , Processed in 0.101361 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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