vb6.0中如何把EXCEL表格中的数据导入到access库中

我想用录制宏的方法实现,但没成功,请大家指点一下。(从excel表格的sheet1导入数据库的一个已存在的表内)

不知道VB和VBA有什么差别啊
以下是我学习VBA的代码,看看吧
Public Sub 将数据库记录数据全部导入到excel工作表ADO之一()
Dim myData As String, myTable As String, SQL As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
'清除工作表的全部数据
ActiveSheet.Cells.Clear
myData = ThisWorkbook.Path & "\学生成绩管理.mdb" '指定数据库
myTable = "期末成绩" '指定数据表
'建立与数据库的连接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open myData
End With
'查询数据表
SQL = "select * from " & myTable & " order by 性别"
Set rs = New ADODB.Recordset
rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
'显示查询结果
MsgBox "数据库中的记录数为:" & rs.RecordCount
'复制记录数据
If rs.RecordCount > 0 Then
'复制字段名
For i = 1 To rs.Fields.Count
Cells(1, i) = rs.Fields(i - 1).Name
Next i
'设置字段名字体为加粗并居中对齐
With Range(Cells(1, 1), Cells(1, rs.Fields.Count))
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
'复制全部数据
Range("A2").CopyFromRecordset rs
'设置工作表格式
ActiveSheet.Cells.Font.Size = 10
ActiveSheet.Columns.AutoFit
End If
'关闭记录集及数据库连接,并释放变量
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
'·recordset对象的copyfromrecordset方法:
'用于将一个ADO或DAO的recordset对象的内容复制到工作表中,复制的起始位置在指定区域的左上角。
' 语法:expression.copyfromrecordset(data,maxrows,maxcolumns)
'expression表示一个工作表的range对象;
'data为必需参数,指定复制到指定区域的recordset对象;
'maxrows(可选):指定复制到工作表的记录个数上限,省略为复制所有记录;
'maxcolumns(可选):指定复制到工作表的字段个数上限,省略将复制对象的所有字段
'copyfromrecordset方法只是复制记录集的记录数据,并不复制字段名,下列语句用fields集合的count属性获取字段总数,在循环中利用field对象的name属性获取字段名。
'For i = 1 To rs.Fields.Count
' Cells(1, i) = rs.Fields(i - 1).Name
'Next i
'复制的记录是从当前行开始的内容,复制完成之后,recordset对象的EOF属性值为True,因此在复制recordset对象内容后,如要重新浏览记录集的话,需使用rs.movefirst将记录指针移到第一条记录。
'·SQL语句:
'sqlect 字段列表 from 子句(表名)where 条件 group by 性别(分组) having avg(工资总额)>5000 (与group by 一起用) order by 姓名 asc(升序)/desc(降序)
End Sub

' 引用:microsoft activeX data objects 2.x library
Public Sub 将数据库记录数据全部导入到excel工作表ADO之二()
Dim myData As String, myTable As String, SQL As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
ActiveSheet.Cells.Clear '清除工作表的全部数据
myData = ThisWorkbook.Path & "\学生成绩管理.mdb" '指定数据库
myTable = "期末成绩" '指定数据表
'建立与数据库的连接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open myData
End With
'查询数据表
SQL = "select * from " & myTable & " order by 数学"
Set rs = cnn.Execute(SQL)
'复制记录数据
If rs.EOF And rs.BOF Then
MsgBox "数据表中没有记录!", vbCritical
Else
'复制字段名
For i = 1 To rs.Fields.Count
Cells(1, i) = rs.Fields(i - 1).Name
Next i
'设置字段名字体为加粗并居中对齐
With Range(Cells(1, 1), Cells(1, rs.Fields.Count))
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
'复制全部数据
Range("A2").CopyFromRecordset rs
'设置工作表格式
ActiveSheet.Cells.Font.Size = 10
ActiveSheet.Columns.AutoFit
End If
'关闭记录集及数据库连接,并释放变量
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

' 引用:microsoft activex data objects 2.x library
Public Sub 将数据库记录数据全部导入到Excel工作表ADO之三()
Dim myData As String, myTable As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
ActiveSheet.Cells.Clear '清除工作表的全部数据
myData = ThisWorkbook.Path & "\学生成绩管理.mdb" '指定数据库
myTable = "期末成绩" '指定数据表
'建立与数据库的连接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open myData
End With
'查询数据表
Set rs = New ADODB.Recordset
rs.Open myTable, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
'显示查询结果
MsgBox "数据库中的记录数为:" & rs.RecordCount
' 复制记录数据
If rs.RecordCount > 0 Then
'复制字段名
For i = 1 To rs.Fields.Count
Cells(1, i) = rs.Fields(i - 1).Name
Next i
With Range(Cells(1, 1), Cells(1, rs.Fields.Count))
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
'复制全部数据
Range("A2").CopyFromRecordset rs
'设置工作表格式
ActiveSheet.Cells.Font.Size = 10
ActiveSheet.Columns.AutoFit
End If
'关闭记录集及数据库连接,并释放变量
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing

'·注 之一1与之三的 区别:
'实例3-1中语句rs.open sql,cnn,adopenkeyset,adlockoptimistic和实例3-3中语句rs.open mytable,cnn,adopenkeyset,adlockoptimistic,adcmdtabledirect的区别:前者使用了sql语句来实现对数据表的查询,因此可以实现各种条件下的查询;而后者则使用数据表名来实现对数据表的查询,得到的数据是整个数据表,且无法对记录排序,除此之外两者的代码完全相同。
End Sub

' 引用:microsoft dao 3.6 object library
Public Sub 将数据库记录数据全部导入到Excel工作表DAO之一()
Dim myData As String, myTable As String, SQL As String
Dim myDb As DAO.Database
Dim myRs As DAO.Recordset
Dim i As Integer
ActiveSheet.Cells.Clear '清除工作表的全部数据
myData = ThisWorkbook.Path & "\学生成绩管理.mdb" '指定数据库
myTable = "期末成绩" '指定数据表
'建立与数据库的连接
Set myDb = OpenDatabase(myData)
'查询数据表
SQL = "select * from " & myTable & " order by 数学"
Set myRs = myDb.OpenRecordset(SQL)
'显示查询结果
MsgBox "数据库中的记录数为:" & myRs.RecordCount
'复制记录数据
If myRs.RecordCount > 0 Then
'复制字段名
For i = 1 To myRs.Fields.Count
Cells(1, i) = myRs.Fields(i - 1).Name
Next i
'设置字段名字体为加粗并居中对齐
With Range(Cells(1, 1), Cells(1, myRs.Fields.Count))
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
'复制全部数据
Range("A2").CopyFromRecordset myRs
'设置工作表格式
ActiveSheet.Cells.Font.Size = 10
ActiveSheet.Columns.AutoFit
End If
'关闭记录集及数据库连接,并释放变量
myRs.Close
myDb.Close
Set myRs = Nothing
Set myDb = Nothing

' ·DAO创建查询记录集要使用DAO.database对象的openrecordset方法?
'语法:set recordset=database.openrecordset(source,type,options,lockedits)
'databaseo为新建立的dao.database对象变量;
'source是记录集的数据源,可以是该数据库对象对应数据库的表名,也可以是SQL查询语句;
'type:指定新建的recordset对象的类型;
'options:指定新建的recordset对象的一些特性;
'lockedits: 控制对记录的锁定
'例: Set myRs = myDb.OpenRecordset(SQL)
End Sub

Public Sub 将数据库记录数据全部导入到Excel工作表DAO之二()
Dim myData As String, myTable As String
Dim myDb As DAO.Database
Dim myRs As DAO.Recordset
Dim i As Integer
ActiveSheet.Cells.Clear '清除工作表的全部数据
myData = ThisWorkbook.Path & "\职工管理.mdb" '指定数据库
myTable = "职工基本信息" '指定数据表
'建立与数据库的连接
Set myDb = OpenDatabase(myData)
'查询数据表
Set myRs = myDb.OpenRecordset(myTable)
'显示查询结果
MsgBox "数据库中的记录数为:" & myRs.RecordCount
'复制记录数据
If myRs.RecordCount > 0 Then
'复制字段名
For i = 1 To myRs.Fields.Count
Cells(1, i) = myRs.Fields(i - 1).Name
Next i
'设置字段名字体为加粗并居中对齐
With Range(Cells(1, 1), Cells(1, myRs.Fields.Count))
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
'复制全部数据
Range("A2").CopyFromRecordset myRs
'设置工作表格式
ActiveSheet.Cells.Font.Size = 10
ActiveSheet.Columns.AutoFit
End If
'关闭记录集及数据库连接,并释放变更
myRs.Close
myDb.Close
Set myRs = Nothing
Set myDb = Nothing
'·区别:
'之一使用SQL语句,而之二使用数据表来实现查询,其他相同。
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-21
vb6 打开excel有2种方法,一种使用office 带的dll 直接按照cell操作excel
这种比较不容易出状况,另一种使用ado连接到excel,把excel 的sheet 作为一个表来操作,这种容易出状况,特别对手工生成的excel

如果是机器产生的excel,建议分别使用2个connection 连接excel 和 access
然后按照标准的方法读取recordset 进行数据导入导出

如果是手工生成的excel,建议使用office 带的excel dll应该叫microsoft excel X.x object library , 然后用connection连接 access ,通过读excel数据,一个个的对recordset操作。
第2个回答  推荐于2016-05-01
1,打开access,点击工具栏的外部数据,点击excel。
2,点击浏览,选择要导入的excel表格,选好后点击确定,在获取外部数据中点击确定。
3,点击确定后会弹出导入数据包向导框,点击下一步,然后到另一个步骤。
4,点击下一步后,再点击下一步,然后在框里输入要导入的数据表的名称,最后点击完成就可以了。
第3个回答  2010-01-21
误导观众!

Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;"
conn.Execute "Insert Into [;database=" & sAccessDBPath & "]." & _
sAccessTable & " Select * FROM [" & sSheetName & "$]"本回答被提问者采纳
第4个回答  2010-01-29
xgw94013811 兄弟说的是对的!

vb6.0中如何把EXCEL表格中的数据导入到access库中
Public Sub 将数据库记录数据全部导入到Excel工作表ADO之三() Dim myData As String, myTable As String Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim i As Integer ActiveSheet.Cells.Clear '清除工作表的全部数据 myData = ThisWorkbook.Path & "\\学生成绩管理.mdb" '指定数据库myTable = "...

vb6.0怎么把excel的数据导入到access中?能给个源码么 谢谢
在一个表单中添加一个命令按钮command1,添加代码如下:Private Sub Command1_Click()Dim cn As Connection Dim rs As Recordset Dim sql As String Dim n As Long, m As Long Set cn = New Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=" & App.Path & "\\...

用vb6.0写一个将Excel数据导入access中的程序
App.Path & "\\db.mdb"--你的VB程序在哪运行,就在哪儿生成mdb 'App.Path = Application Path ExportExcelSheetToAccess "authors", "E:\\abc.xls", "bcd", App.Path & "\\db.mdb"

VB6.0读取excel数据存储到access中,在线等!~~~
Set excel_sheet = excel_app.ActiveSheet Else Set excel_sheet = excel_app End If '将EXCEL记录头导入ACESS数据库 row = 6'从第6行开始读 list = 1 i = 0 do while trim$(excel_sheet.Cells(row, list))<>"" '当记录为空时退出 Do While list <= 10'excel表数据有10列 newfield(...

各位大侠,VB6.0能引进Exl中的数据进行编程不
然后就可以编程了吧!其实我就用Access导入Excel的表格,用的是Access的自带的功能。方法如下:打开Access,文件—>获取外部数据—>导入,然后按部就班做就行。注意,导入Excel的数据表的字段最后与Access的字段相同,免去了许多麻烦。导入数据后,你想怎么处理数据都行!

如何用VB打印表格
在使用VB打印表格时,可以采用一种相对简便的方法。首先,你需要在Excel中创建报表。Excel因其强大的数据处理能力,是制作报表的首选工具。在完成报表制作后,接下来的步骤就是将报表导入到Access数据库中。为了确保数据安全,建议在导入Access之前,为数据库设置密码。这样可以有效防止未经授权的访问。在导入...

vb6.0 Excel数据导入Access不能任意路径
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\\data.mdb"你这里限制了,只有当前目录的data.mdb,所以上面也是提示找不到.mdb啊。

vb6.0中,能用excel文件当作数据库文件吗…?vb程序存在读写数据库,每...
access里可以建链接表到关联到excel表格的,如果是本来的表结构没法变化的话,就添加一个新的链接表,然后再建一个插入的查询,这样每次进去点一下运行查询就行了。在 access和excel里也都可以用VBA编程,相互导数据。

怎样用VB6.0把Listview中查询到的数据导入到EXCEL
1,打开access,点击工具栏的外部数据,点击excel。2,点击浏览,选择要导入的excel表格,选好后点击确定,在获取外部数据中点击确定。3,点击确定后会弹出导入数据包向导框,点击下一步,然后到另一个步骤。4,点击下一步后,再点击下一步,然后在框里输入要导入的数据表的名称,最后点击完成就可以了...

关于VB6.0操作Excel,把其中的内容导入到wod 中
不知道,请参阅 www.Excelhome.net 定有详解

相似回答