vb 从excel 导入到access数据库

lz_xiaohai 2018-09-20 03:35:47

excel 数据列为 序号 日期 供应商 其它 客户 数量 其它1 access 字段为: 单据编号(主键) 日期 供应商 客户 数量

实现功能:1、将excel数据除序号外导入到access数据库 2、单据编号 根据excel的日期在access里查到当天最大的编号加+1,如果没有就从1开始排
3、单据编号规则为 cw+日期(180828)+4位流水号(0001)

如何操作,请大家指导一下。
...全文
1201 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
XBoy410 2018-10-10
  • 打赏
  • 举报
回复
刚说了1,没说2,3。
依你描述,需要编号是连号的吗?如果是连号,好办啊,直接在最大号上+1;没有当天的数据,则从1开始编号,就搞定了。
不连号,直接以特征码+毫秒级时间为编号,就行了。
XBoy410 2018-10-10
  • 打赏
  • 举报
回复
前段时间写的一个小程序,提供思路给你参考:导入数据时,只取表格中需要的数据。至于要应付不同的字段排列的表格也可随时灵活调整对应关系即可。

本想上传软件截图,但不知道今天咱回事,一直上传不了图片。只能简单描述解决思路了。
熊孩子开学喽 2018-10-08
  • 打赏
  • 举报
回复
excel导access
最好的办法就是调用access应用对象. 相当于你在access中选择导入excel表, 无论速度还是准确度都远超其他任何手段.
是"其他任何手段",没有之一(相比打开excel对象读数据再用数据库链接写access要快一个数量级).
大家最常用的可能是引用excel对象, 但是access应用也可以在vb中引用.
具体方法自行右上角吧.
lz_xiaohai 2018-09-29
  • 打赏
  • 举报
回复
导入access后如果重新编号?
weixin_43298446 2018-09-27
  • 打赏
  • 举报
回复
谢谢专家,收藏了。最近准备研究一下用EXCEL导入ACCESS,很有用
WZQ159 2018-09-27
  • 打赏
  • 举报
回复
引用 2 楼 of123 的回复:
方法 1 使用 DAO 的例子(使用 ADO 相仿):

需要引用 DAO 或 ADO 对象。

'********************************
'如何将Excel的文件导入Access文件?
'********************************
'调用此过程共有四个参数:
'1、sSheetName:要导出资料的文件名称 (Sheet name),例如 Sheet1
'2、sExcelPath:要导出资料的 Excel 档案路径名称 (Workbook path),例如 C:\book1.xls
'3、sAccessTable:要导入的 Access Table 名称,例如 TestTable
'4、sAccessDBPath:要导入的 Access 档案路径名称,例如 C:\Test.mdb

'过程声明:

Private Sub ExportExcelSheetToAccess(sSheetName As String, sExcelPath As String, sAccessTable As String, sAccessDBPath As String)
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(sExcelPath, True, False, "Excel 5.0")
Call db.Execute("Select * into [;database=" & sAccessDBPath & "]." & sAccessTable & " FROM [" & sSheetName & "$]")
MsgBox "Table exported successfully.", vbInformation, "Yams"
End Sub


'使用范例如下:將 C:\book1.xls 中的 Sheet1 导入 C:\Test.mdb 成为 TestTable

'ExportExcelSheetToAccess "Sheet1", "C:\book1.xls", "TestTable", "C:\Test.mdb"


谢谢!
of123 2018-09-25
  • 打赏
  • 举报
回复
你把临时表名改成正式表名就可以了。如果你的正式表有自动编号字段的话,会为每一条新纪录自动分配一个编号。
of123 2018-09-21
  • 打赏
  • 举报
回复
ADO 对 Excel 的连接字符串:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""

HDR 表示有列标题行
IMEX 表示文本数字混合列作为文本列处理
of123 2018-09-21
  • 打赏
  • 举报
回复
方法 1 使用 DAO 的例子(使用 ADO 相仿):

需要引用 DAO 或 ADO 对象。

'********************************
'如何将Excel的文件导入Access文件?
'********************************
'调用此过程共有四个参数:
'1、sSheetName:要导出资料的文件名称 (Sheet name),例如 Sheet1
'2、sExcelPath:要导出资料的 Excel 档案路径名称 (Workbook path),例如 C:\book1.xls
'3、sAccessTable:要导入的 Access Table 名称,例如 TestTable
'4、sAccessDBPath:要导入的 Access 档案路径名称,例如 C:\Test.mdb

'过程声明:

Private Sub ExportExcelSheetToAccess(sSheetName As String, sExcelPath As String, sAccessTable As String, sAccessDBPath As String)
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(sExcelPath, True, False, "Excel 5.0")
Call db.Execute("Select * into [;database=" & sAccessDBPath & "]." & sAccessTable & " FROM [" & sSheetName & "$]")
MsgBox "Table exported successfully.", vbInformation, "Yams"
End Sub


'使用范例如下:將 C:\book1.xls 中的 Sheet1 导入 C:\Test.mdb 成为 TestTable

'ExportExcelSheetToAccess "Sheet1", "C:\book1.xls", "TestTable", "C:\Test.mdb"
of123 2018-09-21
  • 打赏
  • 举报
回复 1
基本上两类方法:

1 将 Excel 作为 ADO 数据库引擎的外部数据库来访问,直接通过 SQL 语句将表导入 Access 数据库。

2 用 Excel 对象打开工作表,逐条记录插入到用 ADO 对象打开的 Access 数据库记录集对象。
lz_xiaohai 2018-09-21
  • 打赏
  • 举报
回复
我现在可以导入到一张临时表里,但如何重新编号再导入到正式的表中呢?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧