设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 导入电子表格时,表格类型怎么写?

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-28 23:52:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在手动导入时,并没有选择表格类型,说明它能根据选择的文件自动辨别表格类型,请问用VBA怎么辨别?Excel2003、2007还有2010在写这个参数时,分别怎么写?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2013-3-30 03:09:40 | 只看该作者
用FileDialog的Filters.Add来增加即可。
只是个人觉得没这个必要,用兼容的2003版本就好了。如果非要加上的话,必须确保用户端使用的是更高的版本。例如如果某个用户用的是Access 2003,那么就无法导入Excel2007或以上版本。
以下是帮助文件的例子。
  1. Sub Main()
  2. '引用Office库(2010版本好像是14.0)
  3.     Dim fd As FileDialog
  4.     Set fd = Application.FileDialog(msoFileDialogFilePicker)
  5.     Dim vrtSelectedItem As Variant
  6.      With fd
  7. '如果还要增加则继续用Add,把顺序,即最后一个参数加上去即可。      
  8.         .Filters.Add "Images", "*.gif; *.jpg; *.jpeg", 1
  9.              If .Show = -1 Then
  10.                 For Each vrtSelectedItem In .SelectedItems
  11.                      MsgBox "Selected item's path: " & vrtSelectedItem
  12.             Next vrtSelectedItem
  13.     Else
  14.          Debug.Print "User Cancel"
  15.    End If
  16. End With
  17. Set fd = Nothing
  18. End Sub
复制代码
3#
 楼主| 发表于 2013-4-1 09:50:14 | 只看该作者
roych 发表于 2013-3-30 03:09
用FileDialog的Filters.Add来增加即可。
只是个人觉得没这个必要,用兼容的2003版本就好了。如果非要加上的 ...

Dim fd As FileDialog
在这条语句上提示“类型未定义”。是不是要在“引用”中选择引用?如果是,要想用那个?
4#
发表于 2013-4-1 23:02:59 | 只看该作者
网络蜘蛛 发表于 2013-4-1 09:50
Dim fd As FileDialog
在这条语句上提示“类型未定义”。是不是要在“引用”中选择引用?如果是,要想用 ...

在QBE界面点击“工具\引用”,选择Office Library(如果是2010就是14.0,如果2003就是12.0)
5#
 楼主| 发表于 2013-4-1 23:25:54 | 只看该作者
roych 发表于 2013-4-1 23:02
在QBE界面点击“工具\引用”,选择Office Library(如果是2010就是14.0,如果2003就是12.0)

多谢,解决了。
6#
 楼主| 发表于 2013-4-2 09:20:52 | 只看该作者
roych 发表于 2013-3-30 03:09
用FileDialog的Filters.Add来增加即可。
只是个人觉得没这个必要,用兼容的2003版本就好了。如果非要加上的 ...

我做的数据库我试了一下,只能在2007以上版本运行,所以单位要用数据库的电脑都开始用office2007,不过这些电脑中还存着不少2003版本的Excel文档,所以在导入是要选择文件类型,2007应该是acSpreadsheetTypeExcel12吧!2003是什么?
还有,这是在帮助文件中举的例子:
DoCmd.TransferSpreadsheet acImport, 3, _
    "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
手动时会要求选择工作表,在代码里工作表名应该写在哪里?
7#
发表于 2013-4-2 22:27:54 | 只看该作者
网络蜘蛛 发表于 2013-4-2 09:20
我做的数据库我试了一下,只能在2007以上版本运行,所以单位要用数据库的电脑都开始用office2007,不过这 ...

建议用系统自带的:DoCmd.RunCommand acCmdImport
即正常的导入功能,由用户自行按向导选择文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-10 00:39 , Processed in 0.098693 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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