设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 在access窗体中如何设置导入excel数据命令按扭

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-22 09:58:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
兄弟们,小弟现在有个问题.就是在access窗体中如何设置导入excel数据命令按扭.点击这个按扭就能导入指定的EXCEL里的数据到指定的表中.谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-7-22 13:10:05 | 只看该作者
现成的例子很多,尝试使用论坛中的搜索功能或直接使用百度等搜索相关主题即可.
3#
发表于 2009-7-22 14:41:02 | 只看该作者
TransferSpreadsheet 方法
请参阅 应用于 示例 特性
在 Visual Basic 中,TransferSpreadsheet 方法执行 TransferSpreadsheet 操作。

expression.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

TransferType  可选 AcDataTransferType。

AcDataTransferType 可以是下列 AcDataTransferType 常量之一:
acExport
acImport 默认
acLink
如果将该参数留空,将采用默认常量 (acImport)。


SpreadsheetType  可选 AcSpreadSheetType。

AcSpreadSheetType 可以是这些 AcSpreadSheetType 常量之一:
acSpreadsheetTypeExcel3
acSpreadsheetTypeExcel4
acSpreadsheetTypeExcel5
acSpreadsheetTypeExcel7
acSpreadsheetTypeExcel8 默认
acSpreadsheetTypeExcel9 默认
acSpreadsheetTypeLotusWJ2 - 仅适用于日文版
acSpreadsheetTypeLotusWK1
acSpreadsheetTypeLotusWK3
acSpreadsheetTypeLotusWK4
注意   可以链接 Lotus 1-2-3 电子表格文件中的数据,但是这些数据在 Microsoft Access 中是只读的。可以导入自和链接到 Lotus .WK4 文件,但是不能将 Microsoft Access 数据导出为这种电子表格格式。Microsoft Access 也不再支持使用该方法对 Lotus .WKS 或 Microsoft Excel 2.0 版电子表格数据的导入、导出或链接。

如果将该参数留空,将采用默认常量 (acSpreadsheetTypeExcel8)。


TableName  可选 Variant 型。字符串表达式,表示要向其中导入电子表格数据、从中导出电子表格数据或链接电子表格数据的 Microsoft Access 表的名称,或要将其结果导出到电子表格的 Microsoft Access 选择查询的名称。

FileName  可选 Variant 型。字符串表达式,表示要从其中导入、导出到或链接到的电子表格的名称与路径。

HasFieldNames  可选 Variant 型。使用 True (-1) 可以在导入或链接时,将电子表格中的第一行用作字段名。使用 False (0) 可以将数据表第一行看成普通数据。如果将该参数留空,则采用默认值 (False)。在将 Microsoft Access 表或选择查询数据导出到电子表格中时,无论为该参数输入了何值,字段名称都将插入到电子表格的第一行中。

Range  可选 Variant 型。字符串表达式,表示电子表格中单元格的有效范围或范围名称。该参数仅可用于导入。若要导入整个电子表格,请将该参数留空。导出到电子表格时,必须将该参数留空。如果输入了一个范围,导出将失败。

UseOA  可选 Variant 型。

说明
有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。

语法中的可选参数允许留空,但是必须包含参数的逗号。如果将位于末端的参数留空,则在指定的最后一个参数后面不需使用逗号。

注意   还可以使用 ActiveX 数据对象 (ADO) 来创建链接。方法是,使用 Recordset 对象的 ActiveConnection 属性。

示例
下面的示例在 Lotus 电子表格 Newemps.wk3 的指定范围内将表导入到 Microsoft Access 的“Employees”表,并用电子表格中的第一行作为字段名。

DoCmd.TransferSpreadsheet acImport, 3, _
    "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
4#
 楼主| 发表于 2009-7-22 17:38:16 | 只看该作者
谢谢!我这么做了!可以!但是我导入一遍后,在点击导入,它又导入了一遍重复的数据!并没有把原来的数据替换!这样就有一个问题,就是相同的数据出现了两次!能不能我导入一遍后,如果在导入的话把原来相同的值替换掉呢!
5#
发表于 2009-7-22 18:20:20 | 只看该作者
那就导入前先清空目标表
6#
 楼主| 发表于 2009-7-22 19:42:32 | 只看该作者
不行,数据是要保留着的不能清空!我就怕我忘记已经导完的数据,然后在导入一遍那样统计出来的数据就不准了!应该有方法能避免吧!斑竹帮想想还有别的办法没了?谢谢~~
7#
发表于 2009-7-23 08:24:35 | 只看该作者
用SQL语句简单实现Access与Excel的联系
  1、从Access直接查询Excel,可以是条件查询,查询中可以修改Excel数据,但不能删除数据。

    SELECT  * FROM [EXCEL 8.0;DATABASE=I:\excel\表1.XLS].sheet1;

        2、从Access更新Excel表。

        UPDATE [EXCEL 8.0;DATABASE=I:\excel\表1.XLS].sheet1 SET sheet1.性别 = "女";

  3、从Access导入数据到Excel中。

   INSERT INTO [EXCEL 8.0;DATABASE=I:\excel\表1.XLS].sheet1 SELECT * FROM 表;

  4、从Excel导入数据到Access中。

   INSERT INTO 表 SELECT * FROM [EXCEL 8.0;DATABASE=I:\excel\表1.XLS].sheet1;

       5、从Access生成Excel表。

          SELECT * INTO [EXCEL 8.0;DATABASE=I:\excel\表1.XLS].sheet1 FROM 表;

       6、从Excel生成Access表

         SELECT * INTO 表 FROM [EXCEL 8.0;DATABASE=I:\excel\表1.XLS].sheet1;
8#
发表于 2009-7-23 10:10:43 | 只看该作者
先弄清楚你凭什么判断导入的是重复的数据,你可以依据此在导入前进行判断,是重复则不进行导入,必要时可以使用临时表.
9#
发表于 2009-8-6 22:23:38 | 只看该作者
顶了!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-13 02:36 , Processed in 0.100059 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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