excel和数据库交互

2024-12-19 20:33:28
推荐回答(5个)
回答1:

楼主, 下面的方法实现让EXCEL 按条件从MDB上抓数, 且可以随条件变动随时更新数据。只要数据源(那个MDB)还在原来位置。

1. 数据->导入外部数据->新建数据查询
2. 在数据库页 选择 MS Access Database*-->确定
3. 找到准备要导入的.mdb -确定
4. 在"查询向导"窗口上的"可用表和列"下选择把所有字段选去右边的 "查询结果列"
5. 下一步->到筛选数据, 不进行任何筛选, 直接下一步
6. 排序顺序页 不选->直接下一步
7. 完成页上, 选第二项 "在Microsoft Query中查看数据或编辑查询->点完成
8. 这时会打开 Microsoft Query窗口, 选取菜单 视图--> 条件-->在下面"条件字段"选择你要将来要在Excel进行查询的字段, 在"值"处输入 "[]",输入完有弹出要求输入参数的窗口可以直接确定关闭. 这是加了一个查询, 你将来的查询可能不止一个字段, 如果有两个或更多,请在刚才那个刚加的 "条件字段" 旁继续加, 方法一样
9. 查询字段加完-->选文件菜单-->将数据返回Microsoft Office Excel(R)
10.这时出现一个窗口叫导入数据. 在窗口上指定导进来的数据放在哪里(指定单元格位置)。 在这窗下部有一个 "参数"按钮, 点它->选择"参数一" -> "从下列单元格中获取数值",指定一个单元格位置, 切记一定要选择下边的"单元格值更改时自动刷新"(这个意思是说之前我们在MS Query里的参数虽然没有输入, 不是不输入参数,而是刚给"参数一"指定的单元格代替参数值(也就是将来的查询值)。什么意思?就是说将来数据导入完成后, 如果这个指定单元格变动了的话, 被导入的数据也将随之变化) 同样,如果你第二个查询参数的话, 你会看到"参数二", 同样为他指定具体单元格,且一定要记得选择"单元格值更改时自动刷新",否则指定的单元格变动,导入的数据不会跟着变。全部参数设定好后, 按确定--> 反回刚刚那个"导入数据"窗口。 再按确定. 此时,如果你刚为参数指定的单元格放有合法值(MDB上那个要查询字段的具体值)的话, 它会按你的参数值也就是查询条件值,导入数据.

如果你对导入的结果不想要原来MDB上的全部字段的话, 请在上面4步时, 选择想要的字段,最终Excel上的结果就不会出现不想要的字段了.

啊..打了好多字, 手累。 楼主, 100分都不够哦^^

回答2:

我理解你的用意是想输入一个查询条件, 然后在数据库里查找, 找到后,将相应的内容显示出来,对吗?

应当可以用EXCEL的获取外部数据源的方法实现。可以不用代码。但要手工点刷新(当然可以用代码自动刷新)。

回答3:

是什么数据库?我这里有一个sqlserver的查询,你可以参考参考:
Private Sub CommandButton1_Click()
Dim cnnConnect As New ADODB.Connection
Dim rstRecordset As New ADODB.Recordset
Dim strSQL As String
'连接数据库
cnnConnect.Open "Provider=SQLOLEDB;" & _
"Data Source=数据库名;" & _
"User ID=sa;Password=sa;"
'定义查询字段
strSQL = _
"SELECT * & _
"FROM 表名称 & _
"WHERE 表中的某个字段=Cells(1, 1).Value"
'将查询到的数据填写到a2:iv65536中
rstRecordset.Open strSQL, cnnConnect
Sheet1.Range("A2:iv65536").ClearContents
Sheet1.Cells(2, 1).CopyFromRecordset rstRecordset
End Sub

回答4:

在 Excel 和 Access 之间交换(复制、导入和导出)数据存在多种在 Microsoft Office Access 和 Microsoft Office Excel 之间交换数据的方法。

若要将 Access 中的数据装入 Excel,可以从 Access 数据表中复制数据并粘贴到 Excel 工作表中,从 Excel 工作表连接到 Access 数据库,或者将 Access 数据导出到 Excel 工作表中。
若要将 Excel 中的数据装入 Access,可以从 Excel 工作表复制数据并粘贴到 Access 数据表中,将 Excel 工作表导入 Access 表中,或者从 Access 表链接到 Excel 工作表。

“导入”在 Excel 和 Access 中的意义各不相同。在 Excel 中,导入指的是建立一个可刷新的永久数据连接。在 Access 中,导入则指将数据装入 Access 中一次,但不建立数据连接。
您不能将 Excel 工作簿保存为 Access 数据库。Excel 和 Access 都不提供利用 Excel 数据创建 Access 数据库的功能。

--------------------------------------------------------------------------------

在 Excel 中使用 Access 数据

如果数据在 Access 中,但您希望在 Excel 中使用这些数据:操作: 交换的性质:
将 Access 数据复制到 Excel 中 临时
将 Access 数据导出到 Excel 定期
从 Excel 连接到 Access 数据 永久

在 Access 中使用 Excel 数据

如果数据在 Excel 中,但您希望在 Access 中使用这些数据:操作: 交换的性质:
将 Excel 数据复制到 Access 中 临时
将 Excel 数据导入到 Access 定期
从 Access 链接到 Excel 数据 永久

--------------------------------------------------------------------------------

在 Excel 中使用 Access 数据
您可能想在 Excel 工作簿中使用 Access 数据,以便利用数据分析和绘制图表功能、数据排列和布局的灵活性或其他一些 Access 中不可用的功能。

将 Access 数据复制到 Excel 中
您可以从 Access 的数据表视图复制数据,然后将数据粘贴到 Excel 工作表中。

启动 Access,然后打开包含要复制的记录的表、查询或窗体。
在“起始页”选项卡上单击“视图”,然后单击“数据表视图”。
选择要复制的记录。
如果要选择特定列,请在相邻的列标题之间拖动。

在“开始”选项卡上的“剪贴板”组中,单击“复制” 。
启动 Excel,然后打开要在其中粘贴数据的工作表。
单击要显示第一个字段名称的工作表区域的左上角。
若要确保复制的记录不替换现有记录,请确保工作表中您单击的单元格的下方和右方不存在数据。

在“开始”选项卡上的“剪贴板”组中,单击“粘贴” 。

将 Access 数据导出到 Excel
通过使用 Access 中的“导出向导”,可以将一个 Access 数据库对象(如表、查询或窗体)或视图中选择的记录导出到 Excel 工作表中。您在执行导出操作时,可以保存详细信息以备将来使用,甚至还可以制定计划,让导出操作按指定时间间隔自动运行。

下面是需要将数据从 Access 导出到 Excel 的常见情形:

您的部门或工作组在处理数据时既使用 Access 也使用 Excel。您在 Access 数据库中存储数据,但使用 Excel 来分析数据和分发分析结果。您的小组目前在需要时将数据导出到 Excel,但您想让这个过程更加高效一些。
您多数时间都在使用 Access,但您的经理更愿意在 Excel 中查看报表。您要按固定时间间隔将数据复制到 Excel 中,但您想自动完成这个过程以便节省您自己的时间。

有关将数据从 Access 导出到 Excel 的详细信息,请参阅 Access“帮助”系统。

从 Excel 连接到 Access 数据
若要将可刷新的 Access 数据装入 Excel 中,您可以创建一个到 Access 数据库的连接,这个连接通常存储在 Office 数据连接文件 (.odc) 中,并检索表或查询中的所有数据。连接到 Access 数据的主要好处是:您可以在 Excel 中定期分析这些数据,而不需要从 Access 反复复制或导出数据。连接到 Access 数据后,当原始 Access 数据库使用新信息更新时,您还可以自动刷新(或更新)包含该数据库中的数据的 Excel 工作簿。例如,您可能想更新每月分发的 Excel 预算摘要报表以使其包含当月数据。

单击要存放 Access 数据库中的数据的单元格。
在“数据”选项卡上的“获取外部数据”组中,单击“自 Access”。
在“查找范围”列表中,找到并双击要导入的 Access 数据库。
在“选取数据源”对话框中,单击要导入的表或查询,然后单击“确定”。

在“导入数据”对话框中,执行以下操作:
在“选择数据显示方式”下,执行下列操作之一:
若要以表 (表:关于特定主题的一组数据的集合,以记录(行)和字段(列)的形式存储。)的形式查看数据,请选择“表”。
若要以数据透视表 (数据透视表:一种交互的、交叉制表的 Excel 报表,用于对多种来源(包括 Excel 的外部数据)的数据(如数据库记录)进行汇总和分析。)的形式查看数据,请选择“数据透视表”。
若要以数据透视图 (数据透视图:提供交互式数据分析的图表,与数据透视表类似。可以更改数据的视图,查看不同级别的明细数据,或通过拖动字段和显示或隐藏字段中的项来重新组织图表的布局。)和数据透视表的形式查看数据,请选择“数据透视图和数据透视表”。
或者单击“属性”为导入的数据设置刷新、格式和布局选项,然后单击“确定”。
在“数据的放置位置:”下,执行下列操作之一:
若要将数据返回到选择的位置,请单击“现有工作表”。
若要将数据返回到新工作表的左上角,请单击“新建工作表”。
单击“确定”。
Excel 将外部数据区域放在您指定的位置。
有关连接数据的详细信息,请参阅连接(导入)外部数据。

在 Access 中使用 Excel 数据
您可能想在 Access 数据库中使用 Excel 数据,以便利用 Access 的数据管理、安全或多用户功能。Access 中有许多有用的功能,对于使用 Excel 数据的用户来说其中有两个功能尤为有用:

报表 如果您熟悉 Access 报表的设计,并且想以此类报表的形式汇总和组织 Excel 数据,则可创建 Access 报表。例如,您可以创建更灵活的报表,例如分组和摘要报表、打印的标签和图形报表。
窗体 如果您想使用窗体查找或显示 Excel 中的数据,则可创建 Access 窗体。例如,您可以创建一个 Access 窗体以与工作表中的列顺序不同的顺序显示字段,或者以更方便的方式在一屏中查看较长的行数据。

有关使用 Access 窗体和报表的详细信息,请参阅 Access“帮助”系统。

将 Excel 数据复制到 Access 中
您可以在 Excel 的工作表视图中复制数据,然后将数据粘贴到 Access 数据表中。

注释 如果您将工作表中多个字段的数据粘贴到一个数据表中,请确保这些列与要复制的数据的顺序匹配。将多个字段中的数据粘贴到一个窗体中时,Access 将数据粘贴到与源字段同名的字段中,无论它们在窗体中的顺序如何。如果您要复制的数据包含目标窗体中不存在的字段,则 Access 会询问您是否仅粘贴名称匹配的字段。如果不存在名称匹配的字段,则 Access 会根据目标窗体的选项卡顺序粘贴字段,此顺序可能不是所需的顺序。如果源字段名称与目标字段名称不同,您可能需要将数据粘贴到数据表而不是窗体中。

启动 Excel,然后打开包含要复制的数据的工作表。
选择要复制的行。
在“开始”选项卡上的“剪贴板”组中,单击“复制” 。
启动 Access,然后打开要在其中粘贴行的表、查询或窗体。
在“数据表”选项卡上,单击“视图”,然后单击“数据表视图”。
请执行下列操作之一:
若要替换记录,请选择这些记录,然后在“开始”选项卡上的“剪贴板”组中,单击“粘贴” 。
若要将数据作为新记录追加,请在“起始页”选项卡上的“剪贴板”组中,单击“编辑”菜单上的“粘贴追加”。

将 Excel 数据导入到 Access
若要将 Excel 中的数据存储到 Access 数据库中,并且此后在 Access 中使用和维护这些数据,您可以导入这些数据。导入数据时,Access 会在新表或现有表中存储这些数据,而无需改变 Excel 中的数据。进行导入操作时,一次只能导入一个工作表。若要导入来自多个工作表的数据,请为每个工作表重复执行导入操作。

下面是需要将 Excel 数据导入 Access 的常见情形:

您多数时间都在使用 Excel,但以后准备使用 Access 处理这些数据。您想将 Excel 工作表的数据移到一个或多个新的 Access 数据库中。
您所在的部门或工作组使用 Access,但有时您会收到 Excel 格式的数据,而这些数据又必须合并到 Access 数据库中。您想在接收到 Excel 工作表时将它们导入到数据库中。
您使用 Access 管理数据,但您所在工作组的其他人员发来的周报是 Excel 工作簿。您想简化导入过程,以确保数据能在每周的特定时间导入到数据库中。
有关将数据从 Excel 导入 Access 的详细信息,请参阅 Access“帮助”系统。

从 Access 链接到 Excel 数据
您可以将 Excel 区域作为表链接到 Access 数据库中。如果您计划继续维护 Excel 中的区域,但又希望可以从 Access 中访问此区域,则可使用此方法。您应该从 Access 数据库而不是从 Excel 创建此类链接。

在链接到 Excel 工作表或命名区域时,Access 会创建一个新表并链接到源单元格。在 Excel 中对源单元格所做的任何更改都会反映到链接的表中。不过,您不能在 Access 中编辑对应表的内容。如果要添加、编辑或删除数据,必须在源文件中进行更改。

下面是需要从 Access 中链接到 Excel 工作表的常见情形:

您想继续在 Excel 工作表中保留数据,但要能够使用 Access 强大的查询和报表功能。
您所在的部门或工作组使用 Access,但需要处理的外部源数据位于 Excel 工作表中。您不想维护外部数据的副本,但要能够在 Access 中处理这些数据。

回答5:

1、比如excel A1:A20 这数据每1分钟更新一次(如果数据后处理程序在EXCEL中,那么计算将随着数据变化自动进行结果的更新),而想将这些数据导入matlab,因为数据后处理程序采用MATLAB写的,现在就有个问题:matlab数据我以前是采用import 形式手动导入excel。XLS文件到matlab,我想能不能excel中A1:A20 数据更新后能自动导入MATLAB(比如每1分钟或者5分钟更新一次)。这样我就不要自己手动不断导入EXCEL中更新的数据。
2、另外就行EXCEL一样 如果数据一更新,那么结果就自动计算更新,MATLAB中能不能也能够这样(我仅按一次RUN,以后只要有更新数据进来,matlb就自动计算,并更新计算结果)。