永发信息网

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

答案:5  悬赏:70  手机版
解决时间 2021-03-06 23:17
我想用录制宏的方法实现,但没成功,请大家指点一下。(从excel表格的sheet1导入数据库的一个已存在的表内)
最佳答案
1,打开access,点击工具栏的外部数据,点击excel。
2,点击浏览,选择要导入的excel表格,选好后点击确定,在获取外部数据中点击确定。
3,点击确定后会弹出导入数据包向导框,点击下一步,然后到另一个步骤。
4,点击下一步后,再点击下一步,然后在框里输入要导入的数据表的名称,最后点击完成就可以了。
全部回答
xgw94013811 兄弟说的是对的!
不知道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
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操作。
误导观众! 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 & "$]"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
淘宝快递什么时候开始发货?
这部电影叫什么名字:一大波丧尸因为一个女人
怎么算日期啊!!女生进!!急急急!!
如何扫描文件到电脑
龙源华府西门这个地址在什么地方,我要处理点
电子管风琴多少钱?
周航的繁篆书怎么写
请问,密银宝盒,请问密银宝盒要用什么东西才能
请问Sweet Dream的歌词谐音是什么?
怎么让乌龟张口吃肉?!!
COUNTIFS函数,相同的公式设置,为什么有些出不
什么什么不堪成语
耀马投资地址在什么地方,想过去办事
有一首英文歌锐啊里球景是什么歌
mxdl文件用什么软件打开
推荐资讯
安徽新闻出版职业技术学院文科2011分数线 是
哆来咪艺术幼儿园第三分部在什么地方啊,我要
为啥欧洲人古代也是一夫一妻制
其实ipad是不是很没用处
张叔叔存款3000元,存期是半年,到期时张叔叔可
豆浆增肥吗
“入国问禁,入乡问俗”体现的道理是A. 坚持
请问金华的K423列车是不是就是在金华火车站上
NBA费城76人队实力排名第几?
抚慰和纳闷的反义词
地下城现在预约角色预约多少级可以换传说装备
\我准备用S-136做一副有点大的塑料壳件模
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?