Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

导入时出现下标越界提示

张华  发表于:2021-03-22 09:15:21  
复制

点击下载此附件

请问各位大神,导入时为什么会出现下标越界,请指导,感谢!

 

Top
leoyoung 发表于:2021-03-22 11:09:37

就你这个附件样本的问题

1、数据表名称

    With objBook.Sheets("数据源")

        ......

2、字段的位置

    ........

            rst.Fields(1) = .Range("A" & intN)
            rst.Fields(2) = .Range("b" & intN)



张华 发表于:2021-03-22 15:35:17
leoyoung 老师!这种导入数据时间较长,二万条数据就要半个小时,请问能在原代码上修改来提高导入时间吗!

leoyoung 发表于:2021-03-23 07:28:18

试一试用查询吧,不知是否可缩短时间?


原With...End With 的代码注释或删除


SQL = "insert into 数据源 select * from [数据源$] in '" & CurrentProject.Path & "\" & objBook.Name & "' 'Excel 8.0;'"

CurrentProject.Connection.Execute (SQL)




张华 发表于:2021-03-23 08:44:24

删除后提示找不到数据源对象

 On Error GoTo err

    Dim strPathName As String           '输出文件路径名
    Dim objApp As Object              'Excel程序
    Dim objBook As Object               'Excel工作簿
    Dim rst As Object                   '子窗体记录集
    Dim curSum As Currency              '折后金额总计
    Dim intN As Integer                 '循环计数器
    '通过对话框取得Excel文件名
    With FileDialog(3)    'msoFileDialogOpen
        .InitialFileName = CurrentProject.Path
        .Filters.Clear
        .Filters.Add "Microsoft Excel", "*.xlsx"
        If .Show Then strPathName = .SelectedItems(1)
    End With
    '对话框取消则退出过程
    If strPathName = "" Then Exit Sub




    '设置鼠标指针为沙漏形状
    '    DoCmd.Hourglass True
    '创建Excel对象
    Set objApp = CreateObject("Excel.Application")
    '打开模板文件
    Set objBook = objApp.Workbooks.Open(strPathName)
    '选中激活“销售订单”工作表
    'objBook.Sheets("sheet1").Select    '没有"sheet1"这个表名
    'objApp.Visible = True
    ' With objApp.ActiveSheet    '如果用ActiveSheet属性,就要事先设置属性objApp.Visible = True
    SQL = "insert into 数据源 select * from [数据源] in '" & CurrentProject.Path & "\" & objBook.Name & "' 'Excel 8.0;'"
CurrentProject.Connection.Execute (SQL)
   MsgBox "导入成功!", vbInformation, "提示"
    objBook.Close
    Set objBook = Nothing
    Set objApp = Nothing
    Set rst = Nothing
    Exit Sub
err:
    MsgBox err.Description
    objBook.Close
    Set objBook = Nothing
    Set objApp = Nothing

    Set rst = Nothing




leoyoung 发表于:2021-03-23 09:26:31

唉!抄都抄错,少了$




张华 发表于:2021-03-24 08:59:11

老师!运用到别的地方,就提示 “数据库引擎找不到对象”sheet1$。请确保该对象存在,并正确拼写名称和路径“。该如何解决。

sheet1$的表名改为数据源$



leoyoung 发表于:2021-03-24 09:16:59

代码对样本运行是可以的,则自己弄懂理解后运用,一般如果结构没有变化,多半是名称问题。


另这个主题的问题如果已经解决,请结帖。其他问题再开贴提问。谢谢!



张华 发表于:2021-03-24 12:52:52
老师!也是这个案例,如果导入的数据较多的过程中,界面就会处于静止的状态,感觉导入数据时卡死,能否将鼠标设置成导入中打转,或者是些导入中的术语。

总记录:8篇  页次:1/1 9 1 :