我想将excel表里的数据导入到access数据库里的某个表里,表已经存在而且里面含有数据,而且以前的数据不能丢失,如何实现
解决方案 »
- VB6能否从Windows控件库直接继承来做自己的控件?
- vb 文件"cli.exe"已经运行,它有若干个窗口,如何通过程序关闭它
- 求助
- 请教:“vb6.0中文版 IIS 项目加载不了 webclass.dsr”
- VB里一个汉字长度是1,SQL里一个汉字长度是2? 怎么解决输入限制问题?
- ADO高手请进
- 高分:如何将客户机的时间更改为和服务器的时间一致?
- 把鼠标放在一个控件上,自动显示一行字几秒钟,怎么实现?
- vb 中listview的相关问题
- 我想问问斑竹,up这送分
- ListView的定位滚动问题,在线等
- 跪求 VB程序中为MEDIAPLAYER中加入MARK的方法。急!在线等!谢谢各位大虾
如果将数据清单转化为 Microsoft Access 数据库,则只能在 Access 中维护数据。此后对 Access 数据库进行的一切修改将不会反映到 Microsoft Excel 数据清单中。如果要转换 Excel 数据清单,必须安装 Access。如果 Excel 的“数据”菜单中没有“转换到 MS Access”命令,则需要安装和加载 AccessLinks 加载宏程序。 单击 Excel 数据清单中的单元格。
单击“数据”菜单中的“转换到 MS Access”命令。
如果要为数据清单新建 Access 数据库,请单击“新建数据库”。
如果要向现有 Access 数据库中添加数据清单,请单击“现有数据库”,然后在“现有数据库”下方的编辑框中键入数据库路径。如果要查看系统或网络中的数据库,请单击“浏览”按钮。 单击“确定”按钮。
在将 Excel 数据清单永久性地转化为 Access 数据库的过程中,“Access 电子表格导入向导”和“表分析器向导”将给出相应的提示。 注意 转换完成后,AccessLinks 会在原始数据清单的右侧放置一个文本框,表示该数据清单已转化为 Access 数据,但原始数据并不会改变。
有关“Access 电子表格导入向导”和“表分析器向导”的详细信息,请参阅 Access 的帮助。
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.xls;Extended Properties=Excel 8.0"
cn.Execute "insert into openrowset('Microsoft.Jet.OLEDB.4.0','e:\db1.mdb';'admin';'',t_order) select * from t_order"
Dim excel_app As Object
Dim excel_sheet As Object
Dim MyDatabase As Database
Dim MyTable As TableDef
Dim MyField As Field
Dim new_value As String
Dim row As Integer
Dim col As Integer
Dim i As Integer
Screen.MousePointer = vbHourglass
DoEvents ' 创建excel application对象.
Set excel_app = CreateObject("Excel.Application") ' 打开一个excel文件
excel_app.Workbooks.Open FileName:=txtExcelFile.Text ' 判读最新版本.
If Val(excel_app.Application.Version) >= 8 Then
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If ' 打开Access数据库
Set MyDatabase = CreateDatabase(txtAccessFile.Text, dbLangGeneral) ' 创建数据库
Set MyTable = MyDatabase.CreateTableDef("TableFromExcel") ' 创建表
col = 1
Do
If Len(Trim$(excel_sheet.Cells(1, col))) = 0 Then
Exit Do
End If
Set MyField = MyTable.CreateField("col" & CStr(col), dbText, 50) ' 创建字段
MyTable.Fields.Append MyField ' 将新创建的字段添加到表中
col = col + 1
Loop
MyDatabase.TableDefs.Append MyTable ' 将表添加到数据库中
' 从excel文件中的数据复制到Access数据库中
row = 1
Do
new_value = ""
For i = 1 To col - 2
new_value = new_value & "'" & Trim$(excel_sheet.Cells(row, i)) & "'" & ","
Next i
new_value = new_value & "'" & Trim$(excel_sheet.Cells(row, col - 1)) & "'"
' 如果各个字段的内容都为空则退出
If Len(new_value) = (3 * col - 4) Then
Exit Do
End If ' 将记录插入到数据库中
MyDatabase.Execute "INSERT INTO TableFromExcel VALUES (" & new_value & ")"
row = row + 1
Loop
' 关闭数据库
MyDatabase.Close
Set MyDatabase = Nothing ' 关闭excel Application对象
excel_app.ActiveWorkbook.Close False ' 关闭excel
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Load()
Dim file_path As String file_path = App.Path
If Right$(file_path, 1) <> "\" Then file_path = file_path & "\"
txtExcelFile.Text = file_path & "XlsToMdb.xls"
txtAccessFile.Text = file_path & "XlsToMdb.mdb"
End Sub