You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VisualBasic从Access数据库导出数据至Excel时记录丢失问题求助

问题分析与修复

你代码里的核心问题是循环起始索引错误:

  • DataTable的Rows集合从索引0开始,而你外层循环从i=1启动,直接跳过了第一条记录
  • 当数据库仅含1条记录时,ds.Tables(0).Rows.Count等于1,循环条件变为i=1 To 0,循环完全不会执行,导致Excel文件为空

修复后的代码:

For i = 0 To ds.Tables(0).Rows.Count - 1
    For j = 0 To ds.Tables(0).Columns.Count - 1
        xlWorkSheet.Cells(i + 1, j + 1) = ds.Tables(0).Rows(i).Item(j)
    Next
Next

额外提示

  • 如果需要导出表头,可以在循环前单独处理:遍历Columns集合,把列名写入Excel第一行(例如xlWorkSheet.Cells(1, j+1) = ds.Tables(0).Columns(j).ColumnName,此时数据行要从第2行开始)
  • 处理数据库空值时建议加判断,比如If Not IsDBNull(ds.Tables(0).Rows(i).Item(j)) Then xlWorkSheet.Cells(i + 1, j + 1) = ds.Tables(0).Rows(i).Item(j),避免Excel写入无效值

内容的提问来源于stack exchange,提问作者Livio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:44:57