问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在EXCEL中自动读取ACCESS数据库中的信息?

发布网友 发布时间:2022-04-20 12:19

我来回答

3个回答

热心网友 时间:2023-08-31 16:37

用access自动获取excel里的数据的方法就是通过代码的方式导入。
如果是手动导入比较清楚的话,这个实现起来不难,请参考下面的介绍来实现:
首先,新建一个工程,在工程中引用如下对象ADO对象(用于连接ACCESS数据库,可用其它方式),添加一个窗体(from1),在窗体上添加如下控件:
两个文本框,用来显示EXCEL文件路径和ACCESS路径;
四个扭钮,两个用来游览,另两个是导入和退出;
两个通用对话框控件,用来打开ACCESS和EXCEL文件,一个进度条控件,用来显示导入进程。
该实例的导入是将ACCESS数据库中表的字段名单独存放在另外一个表中,导入时按表中所存字段名的顺序进行导入,不是按EXCEL表的顺序导入,这样在实际中是很实用的.
因为好多时候EXCEL表中字段顺序和ACCESS中字段顺序有可能不是一致的.
代码如下:
Dim v
Option Explicit
Private Sub cmdLoad_Click()
Dim excel_app As Object
Dim excel_sheet As Object
If txtExcelFile.Text = "" Then
MsgBox "请选择EXCEL表"
Else
Dim new_value As String
Label2.Caption = "正在导入,请稍候..."
Screen.MousePointer = vbHourglass
DoEvents
'' Create the Excel application.
Set excel_app = CreateObject("Excel.Application")
'' Uncomment this line to make Excel visible.
excel_app.Visible = True
'' Open the Excel spreadsheet.
excel_app.Workbooks.open FileName:=txtExcelFile.Text
'' Check for later versions.
If Val(excel_app.Application.Version) >= 8 Then
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If

Dim u ''求EXCEL表中记录的条数,以便控制进度条
u = 1
Do
If Trim$(excel_sheet.Cells(u, 1)) = "" Then Exit Do
u = u + 1
Loop
bar.Max = u - 1
strSQL = "select * from TestValues"
yourRecord.open strSQL, myConn, adOpenDynamic, adLockOptimistic ''打开记录集
Dim sql As String

sql = "select * from fields order by xue"
myRecord.open sql, myConn, adOpenDynamic, adLockBatchOptimistic ''打开字段记录集
myRecord.MoveFirst
'' Get data from the Excel spreadsheet and insert
'' it into the TestValues table.

Dim v ''导入记录,用了两层循环
v = 1
Do
If Trim$(excel_sheet.Cells(v, 1)) = "" Then Exit Do ''外层,
yourRecord.AddNew
Dim i
For i = 1 To myRecord.RecordCount
'' Get the next value.
new_value = Trim$(excel_sheet.Cells(v, i))
'' See if it''s blank.
''If Len(new_value) = 0 Then Exit Do
'' Insert the value into the database.
Dim bb As String
bb = myRecord("name")
yourRecord(bb) = new_value
myRecord.MoveNext
Next i
bar.Value = v
v = v + 1
myRecord.MoveFirst
Loop
yourRecord.Update

'' Comment the rest of the lines to keep
'' Excel running so you can see it.
'' Close the workbook without saving.
excel_app.ActiveWorkbook.Close False
'' Close Excel.
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
myRecord.Close
yourRecord.Close
Set myRecord = Nothing
Set yourRecord = Nothing
Label2.Caption = "导入完毕"
Screen.MousePointer = vbDefault
MsgBox "共导入" & Format$(v - 1) & "条记录"

End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Command2_Click(Index As Integer)
''寻找ACCESS数据库
CommonDialog1.Filter = "ACCESS 文件(*.mdb)|*.mdb"
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen
txtAccessFile.Text = CommonDialog1.FileName
End Sub
Private Sub Command3_Click()
''寻找excel数据库
CommonDialog2.Filter = "excel 文件(*.xls)|*.xls"
CommonDialog2.CancelError = True
CommonDialog2.ShowOpen
txtExcelFile.Text = CommonDialog2.FileName
End Sub

Private Sub Form_Load()
Call Mole1.lianjie
txtAccessFile.Text = datapath
End Sub
模块(mole1)中的代码如下:
Public myConn As New ADODB.Connection ''定义连接字符串
Public myRecord As New ADODB.Recordset ''定义记录集(字段)
Public yourRecord As New ADODB.Recordset ''定义记录集(数据)
Public cntoad As Boolean ''是否正常连接
Public ml ''姓名字段所在列
Public strSQL ''查询字符串
Public MyDatabase As Database ''定义数据库名
Public MyTable As TableDef, MyField As Field ''定义表名和字段名
Public xuehao ''读取字段序号
Public goshiRecord As New ADODB.Recordset ''定义记录集(公式)
Public hxfyn As Boolean
Public hxfbds '' 公式或条件
Public an ''要统计的字段
Public islinshi As Boolean ''是否为临时公式
Public leiRecord As New ADODB.Recordset ''定义记录集(工资类别)
Public datapath As String ''数据库路径及名
Public table As String ''工资表名
Public lei As String '' 工资类别
Public Sub lianjie() ''打开数据库
On Error Resume Next
myConn.Close
Dim mySQL As String
''设定连接字符串
mySQL = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;"
mySQL = mySQL + "Data Source=" & datapath
myConn.ConnectionString = mySQL ''设定连接
myConn.open ''打开连接
myRecord.ActiveConnection = myConn ''设定RecordSeet的连接对象为Connection
myRecord.CursorLocation = adUseClient
goshiRecord.ActiveConnection = myConn ''设定RecordSeet的连接对象为Connection
goshiRecord.CursorLocation = adUseClient
yourRecord.ActiveConnection = myConn ''设定RecordSeet的连接对象为Connection
yourRecord.CursorLocation = adUseClient
End Sub

热心网友 时间:2023-08-31 16:38

使用sql,select 稿件名称,作者地址,邮编from access中表的名字,不过要提前确定access得位置

热心网友 时间:2023-08-31 16:38

可以实现的,只是要写一些宏代码来完成。
连接ACCESS 并且可以执行SQL语句,对ACCESS数据进行查询,修改,删除都可以!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
计算器M+/ M-是什么意思? 科学计算器M+和M-的操作方法是什么? 竹筒粽子黑米的做法 竹筒粽子怎么做不散 竹筒粽子的做法与步骤详解 孕妇为什么不能吃龙眼呢? 孕妇可以吃龙眼不? 哪个部位的痣不能取 眉毛有痣天生有福气? 脸上什么位置的痣不能点 腊鸭腿的做法大全家常 电脑里回收站里的垃圾清除后都去哪里了? EXCEL 自动调用 ACCESS数据库 数据的问题 access如何导入excel数据 excel引用ACCESS数据库为什么显示要密码 excel中如何直接调用access数据 如何在Excel公式中引用Access数据(透视表除外) excel如何引用access里的查询数据? 微信说哪些话会有表情落下来 贷你嗨填写的资料会不会打电话核实? 贷你嗨服务费6000多合法吗 贷你嗨借款25000分24期每月还1693元,全部结清要406... 贷你嗨贷14000月还1400多综合服务费7000多 综合服... 贷你嗨上征信吗 贷你嗨人工客服电话是多少… 贷你嗨算不算高利贷啊,要是高利贷的没能力还怎么办 贷你嗨不还钱会怎样 贷你嗨是干什么的? 贷你嗨 是不是利息太高被封杀了? 贷你嗨这个借款怎么样。 贷你嗨公司倒闭了,在里面借的钱本金已经还完,剩... 贷你嗨这平台是骗人的? 怎样用EXCEL动态调用ACCESS数据 Excel工作表怎么导入Access数据库数据 怎样把EXCEL里的数据复制到ACCESS里? Excel引用Access的数据,发现都是符号数据 如何把excel数据读取到access数据库中? 怎样在excel中的某一单元格内插入access中的特定字... excel导入ACCESS数据库 怎样将Excel数据导入Access 为什么霍金说人工智能会给人类带来毁灭 霍金说过的四大预言是什么 霍金去世留下三大预言,第一个已经实现,后两个希... 霍金预言,人工智能会灭亡人类吗 对于霍金警告的机器人最终会摧毁人类自身如何看待? 扬言“毁灭人类”的机器人索菲亚,真的会说到做到么? 世界第一台人造机器人,当初扬言要说“毁灭人类”,... 霍金留下的预言是哪几个,为何说若实现会终结人类? 霍金说:未来机器人消灭人类,那怎样消灭 苹果5s屏幕脱胶 为什么霍金说高科技会使人灭亡,科技越发达人类离... 苹果5s屏幕与白色边边脱开怎么办,屏幕有点突出来了?