高分相送~~vb中怎样把excel数据表里的数据导入到access中?

beibeilong 2003-06-23 11:05:38
请问各位,vb中怎样把excel数据表里的数据导入到access中?
最好能做成接口例如 ImportFiles(String Filename,int type).
filename 是excel文件名,type是转换类型(类似于1就导入1.mdb,2就导入2.mdb)
指定excel中的某一个字段入到access中指定的字段

急,在线等待~~
高分相送~~
不够再加
...全文
124 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
beibeilong 2003-06-23
  • 打赏
  • 举报
回复
可是怎样才能实现excel中的一个字段导入到指定的access中的一个字段呢
csdngoodnight 2003-06-23
  • 打赏
  • 举报
回复
如何將 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"


lxcc 2003-06-23
  • 打赏
  • 举报
回复
试试用SQLSERVER的DTS,然后导出的时候导出类型是vb 模块,然后参考一下
OFFICE之门 2003-06-23
  • 打赏
  • 举报
回复
在CSDN上搜索一下,原来有个人答过,是一条语句而已
beibeilong 2003-06-23
  • 打赏
  • 举报
回复
??能否说的具体一些阿,急用
ywood 2003-06-23
  • 打赏
  • 举报
回复
用microsoft excel9.0对象即可,做一个函数
bloodghost 2003-06-23
  • 打赏
  • 举报
回复
這位同志,我來給你提供一個思路:在Access類庫中有一個對象Docmd,它能執行匯入,匯出功能,如果沒試過的話,可以試試.
yinbin 2003-06-23
  • 打赏
  • 举报
回复
微 软的OFFICE提供开发包,应该可以实现的,
gxhwq 2003-06-23
  • 打赏
  • 举报
回复
我想可以不用写码来实现了。
在SQL Server中有数据导入导出工具的啊(DTS)。转什么数据都行,
试试吧。
rainstormmaster 2003-06-23
  • 打赏
  • 举报
回复
回答:

Private Sub Command1_Click()
'''' 在FROM 中添加DATA控件
''''使DATA NAME : DATA1EXCEL
'''' CONNECT: Excel 8.0;
'''' 打开相应的文件的表
Dim Db As Database, Rs As Recordset '定义为公用变量
Dim TableNew As TableDef
Dim SQLstring, SQLfield, SQLvalue As String
Dim i, n As Integer

Set Db = Workspaces(0).OpenDatabase("C:\BROW\TEST.MDB") '''MDB 正确的文件路径
Db.Execute ("DROP TABLE TestTMP ") ''调试使用
Set TableNew = Db.CreateTableDef("TestTMP") '''临时的新表名

For i = 0 To DataEXCEL.Recordset.Fields.Count - 1 '''通过循环获得字短名,类型,长度等
With TableNew
.Fields.Append .CreateField(DataEXCEL.Recordset(i).Name, _
DataEXCEL.Recordset(i).Type, DataEXCEL.Recordset(i).Size)
End With
Next

Db.TableDefs.Append TableNew

Set Rs = Db.OpenRecordset("testtmp", dbOpenDynaset)
DataEXCEL.Recordset.MoveFirst
For i = 1 To DataEXCEL.Recordset.RecordCount
With Rs
.AddNew
For n = 0 To DataEXCEL.Recordset.Fields.Count - 1 '''通过这样的循环才能保证类型,长度匹配,否则很难控制错误
Rs(n) = DataEXCEL.Recordset(n)
Next
.Update
End With
DataEXCEL.Recordset.MoveNext
Next
Set Db = Nothing
Set TableNew = Nothing
End Sub

ADO也可以:用select into语句,注意连接字符串的写法

beibeilong 2003-06-23
  • 打赏
  • 举报
回复
上面的代码执行后,出现错误:
实时错误:“3207”
不能更新,数据库或对象为只读。
怎么回事

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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