① excel如何引用access里的查询数据
1、连接ACCESS2007,2007以上版本代码都差不多:
SubAC()
DimcnnAsNewConnection
DimrsAsNewRecordset
DimsqlAsString
cnn.Open"Provider=Microsoft.Ace.OleDB.12.0;dataSource="&ThisWorkbook.Path&"数据库.accdb"
sql="select*from[宏站]"
rs.Opensql,cnn
'复制字段名
Fori=1Tors.Fields.Count
Cells(1,i)=rs.Fields(i-1).Name
Nexti
[a1].CopyFromRecordsetrs
rs.Close
cnn.Close
EndSub
1、连接ACCESS2003:
DimcnnAsNewConnection
DimrsAsNewRecordset
DimsqlAsString
cnn.Open"Provider=Microsoft.Jet.Oledb.4.0;dataSource="&ThisWorkbook.Path&"数据库.mdb"
sql="select*from[宏站]"
rs.Opensql,cnn
'复制字段名
Fori=1Tors.Fields.Count
Cells(1,i)=rs.Fields(i-1).Name
Nexti
'复制全部数据
Range("A2").CopyFromRecordsetrs
rs.Close
cnn.Close
EndSub
② 如何在EXCEL中自动读取ACCESS数据库中的信息
用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
③ 如何将Excel中的数据导入到Access数据库中
1
第一步:在ghost
xp系统中启动Access,在向导的提示下建立一个“空数据库”以便用于存放从Excel中导入的数据
2
第二步:打开要导入数据的数据库,切换到“外部数据”选项卡,选择“Excel”按钮,打开“导入数据”对话框。
3
第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表.xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。
4
第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表.xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。
5
第五步:勾选“第一行含有列标题”选项,以免导入向导将表格第一排的标题也当做数据导入进来。点击“下一步”按钮
6
第六步:分别选择每一个数据列,并指定导入数据库后的数据类型。中文部分建议设置为“文本”,数字部分可以设置为“整数型”或“双精度型”。然后点击“下一步”按钮
7
第七步:接下来为数据表设置主键。主键是数据库中一种特殊的列,列的内容是一组自动增长的数字,如果没有实际的需要,我们选择“不要主键”并点击“下一步”按钮。
8
第八步:为即将生成的新标取一个名字。例如“学生成绩数据”,并点击“完成”按钮,结束导入。
④ EXCEL如何调用ACCESS数据
找到自己需要做改变的Excel和Access
1
为了避免自己以后的,所以第一个步骤看似无关重要,但是却缺一不可。确保Excel中的数据导入数据库不要出错,不然一切白费。
END
新建数据库,开始执行操作
在数据库上方有一个外部数据,点击外部数据存在一个“导入Excel表格功能”,点击该功能开始执行导入操作。
找到自己的Excel,明确路径,就可以开始了。点击确定进入下一个步骤
在开始导入的时候,根据自己的需要勾选第一行是否包含标题。
勾选:代表Excel中的第一栏就是数据库中的字段名
不勾选:代表Excel所有的数据会成为数据库中的数据
我以勾选状态演示
在下一个页面,可以根据自己的需要修改“字段名称”和“数据类型”。
进入下一页面,可以修改数据库中的主键,可以用Access的默认主键,也可以自定义主键,也可以不要主键。
6
完成主键的设置过后,就完成了数据的导入,但是还没有完,自己要为导入的数据命名。最后就完成了将Excel中的数据导入到Access数据库中的操作。
⑤ 如何将excel中的数据导入到已有ACCESS的数据库
1.双击Access图标,打开Access这个软件。