设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2756|回复: 16
打印 上一主题 下一主题

[模块/函数] 从ACCESS导入EXCEL问题

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-23 16:34:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,在EXCEL里有个表叫A1, 我想ACCESS代码中写,把EXCEL的A1复制一下,名字叫B1,然后把B1更名为当前月份.
但有个问题,在重复执行后,系统会说是否覆盖,然后就退出来了. 请这解决这个问题应该怎么写代码啊?
我想到的是,在执行前把那个当前月份的表删除,然后在执行下一步?
这个代码怎么写啊? 或者有没有更好的方法?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-8-23 18:52:08 | 只看该作者
Dim TableName As String
Dim StrExcelName As String
Dim StrFilename As String
Dim obj As AccessObject, dbs As Object

StrFilename = "10101.xls"
TableName = Format(Now, "yyyymm")

Set dbs = Application.CurrentData
For Each obj In dbs.AllTables
  If obj.Name = TableName Then
     DoCmd.DeleteObject acTable, TableName
  End If
Next obj

StrExcelName = CurrentProject.Path & "\" & StrFilename
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, TableName, StrExcelName, True, 现金银行日记帐
3#
 楼主| 发表于 2007-8-24 08:25:55 | 只看该作者
DoCmd.DeleteObject acTable, TableName
这句运行错误

帮我看一下我的代码哪错了
Dim EX As Excel.Application
Dim rs As Recordset
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim str As String
Dim i As Integer
Dim Returnvalue
Dim temp, XH, XH1 As Integer
Dim zpname, zpname1 As String
Dim Temptable As Excel.Worksheet


str = 取得路径() & "\学校"

Set wb = Workbooks.Open("" & str & "")
Set ws = wb.Worksheets("一部")
'Windows.Application.Visible = True
'------------------------------------------------------------------------------------
zpname = "一部" & CStr(Format(Date, "YYYY-MM"))
    For Each Temptable In Worksheets
        If Temptable.Name = zpname Then
            temp = MsgBox(zpname & "已经存在,是否重新生成", vbYesNo)
            If temp = vbYes Then
               DoCmd.DeleteObject acTable, zpname         '   这句运行错误
            End If
            If temp = vbNo Then
                MsgBox "不能创建同样名称的表,关闭工作簿"
                wb.Save
                wb.Close
                Set rs = Nothing
                Set ws = Nothing
                Set wb = Nothing
                Exit Sub
            End If
        End If
    Next
ws.Copy before:=Sheets(Sheets.Count)
Sheets(Sheets.Count - 1).Name = "一部" & CStr(Format(Date, "YYYY-MM"))
Set ws = wb.Worksheets("一部" & CStr(Format(Date, "YYYY-MM")))
4#
发表于 2007-8-24 08:28:18 | 只看该作者
把例子传上来
5#
发表于 2007-8-24 08:32:58 | 只看该作者
DoCmd.DeleteObject acTable, zpname         是删除ACCESS里的表不是EXCEL的SHEET
6#
 楼主| 发表于 2007-8-24 09:10:58 | 只看该作者
我想删除一个sheet表.....那怎么改啊
7#
 楼主| 发表于 2007-8-24 09:52:18 | 只看该作者
我传一个例子..帮帮我 解压后把EXCEL文件放在D盘根目录 ACCESS文件随便放到哪
在窗体上点导出按钮

现在的程序只能打开EXCEL表才能删除覆盖EXCEL表中的Sheet表   
我不想总是打开EXCEL表才删除
有没有解决的办法..?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
 楼主| 发表于 2007-8-24 14:31:57 | 只看该作者
高手帮帮忙!!!!!!
9#
发表于 2007-8-24 16:11:42 | 只看该作者
如果SHEET NAME 相同,只是想覆盖原来的数据,而不作任何提示,可以不打开EXCEL直接DoCmd.TransferSpreadsheet导出即可
10#
 楼主| 发表于 2007-8-24 16:43:45 | 只看该作者
写在哪个位置啊?
不知道该如何下手了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-2 03:11 , Processed in 0.096720 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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