Office中国论坛/Access中国论坛

标题: 从ACCESS导入EXCEL问题 [打印本页]

作者: cangqiong    时间: 2007-8-23 16:34
标题: 从ACCESS导入EXCEL问题
首先,在EXCEL里有个表叫A1, 我想ACCESS代码中写,把EXCEL的A1复制一下,名字叫B1,然后把B1更名为当前月份.
但有个问题,在重复执行后,系统会说是否覆盖,然后就退出来了. 请这解决这个问题应该怎么写代码啊?
我想到的是,在执行前把那个当前月份的表删除,然后在执行下一步?
这个代码怎么写啊? 或者有没有更好的方法?
作者: andymark    时间: 2007-8-23 18:52
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, 现金银行日记帐
作者: cangqiong    时间: 2007-8-24 08:25
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")))
作者: andymark    时间: 2007-8-24 08:28
把例子传上来
作者: andymark    时间: 2007-8-24 08:32
DoCmd.DeleteObject acTable, zpname         是删除ACCESS里的表不是EXCEL的SHEET
作者: cangqiong    时间: 2007-8-24 09:10
我想删除一个sheet表.....那怎么改啊
作者: cangqiong    时间: 2007-8-24 09:52
我传一个例子..帮帮我 解压后把EXCEL文件放在D盘根目录 ACCESS文件随便放到哪
在窗体上点导出按钮

现在的程序只能打开EXCEL表才能删除覆盖EXCEL表中的Sheet表   
我不想总是打开EXCEL表才删除
有没有解决的办法..?
作者: cangqiong    时间: 2007-8-24 14:31
高手帮帮忙!!!!!!
作者: andymark    时间: 2007-8-24 16:11
如果SHEET NAME 相同,只是想覆盖原来的数据,而不作任何提示,可以不打开EXCEL直接DoCmd.TransferSpreadsheet导出即可
作者: cangqiong    时间: 2007-8-24 16:43
写在哪个位置啊?
不知道该如何下手了
作者: cangqiong    时间: 2007-8-24 16:47
还有进入学生表 的窗体.我不想显示"编辑"菜单..
"工具菜单"里的"启动"设置不了!!!该如何操作..
作者: andymark    时间: 2007-8-24 16:58
新建一个菜单替换系统的菜单
作者: cangqiong    时间: 2007-8-24 17:08
......怎么设置的啊?
那个文件菜单怎么加上的啊? 在多加几个怎么加啊?
作者: andymark    时间: 2007-8-24 17:16
把内置菜单的命令拖到新的菜单即可
作者: shazhe    时间: 2007-8-24 22:32
我的全对数不够吗?帮助
作者: cangqiong    时间: 2007-8-27 11:01
andymar  大哥...
导出的表.我不想固定列.
我想把"学生"放到 C列 或者把 "分数" 放到 E列
有办法实现吗?
作者: cangqiong    时间: 2007-8-27 11:04
andymark 大哥
导出的表 我想固定列
我想把"学生"字段 放到 C列  把 "分数"字段 放到 E列  
可以实现吗?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3