您的位置 首页 > 数码极客

如何创建操作查询,如何创建参数查询

大家好,今日讲解VBA数据库解决方案第19讲:如何在数据库中新建一个查询表,并在工作表中显示出来。关于Recorsset集合的一些操作讲解,在前几讲中讲了很多,这里提醒大家一点:任何对象都不是孤立存在的,要结合实际来理解。有朋友向我咨询一些概念的问题,在写这套资料时,我也同样要参考很多的资料,有时要对照着英语去理解一些概念,这时往往发现很多的概念在英语中和之前人们翻译是有是对不上的,所以理解起来很难.特别是现在的数据库讲解阶段,涉及到ADO、 RDO、连接、打开、引用,单纯的从概念上真的很难理解,这时我建议大家不要纠结于纯概念,要从实际出发,比如:一段代码就是一个连接,一个代码就是一个创建,这样有实际内容参考的去理解就可以了;再者,无论是什么途径,我们的目的是应用,只要我们能达到应用,就达到了我们的目的。很多写VBA的人都是专业人士,而我仅仅是根据多年的经验来写东西,会紧扣以实用为目的,目的是实用,下一个目的还是实用。

今日我们讲解如何从Recorsset记录集中根据某特定的条件形成一个数据库中新表。在前几讲的讲解中是把这些记录直接显示在工作表中,即显示在EXCEL文件中,今日的内容和前面的内容有所不同,是要形成一个表,然后再显示。

实例:我们还是利用之前的数据库,如下资料,把职务为普通员工的职工要重新建立一个查询表,最后再在工作表中显示出来.

随着讲解的深入,实际工作中经常会遇到的问题会逐渐的体现,大家要跟紧我,我们一起学习,这套教程和《VBA代码解决方案》不同,有些内容是连续的,需要读者慢慢的连续的去领会。

下面看看我们今日课题的代码:

Sub mynzCreateView()

Dim cnADO, rsADO As Object

Dim strPath, strSQL, strViewName As String

Set cnADO = CreateObject("ADODB.Connection")

strPath = T & "\myda;

strViewName = "普通员工表"

cnADO.Open "Provider=Micro;Data Source=" & strPath

Set rsADO = cnADO.OpenSchema(20, Array(Empty, Empty, strViewName, Empty))

If Not r Then

MsgBox ("请注意:原有表将删除!")

strSQL = "DROP TABLE " & strViewName

cnADO.Execute strSQL

End If

strSQL = "CREATE VIEW " & strViewName _

& " AS SELECT * FROM 员工信息 " _

& "Where 职务= '员工'"

cnADO.Execute strSQL

MsgBox "查询表创建成功!", , "创建视图"

r

strSQL = "SELECT * FROM 普通员工表"

r strSQL, cnADO, 1, 3

For i = 0 To r - 1

Sheets("Sheet1").Cells(1, i + 1) = r(i).Name

Next i

For i = 1 To r

For j = 0 To r - 1

Sheets("Sheet1").Cells(i + 1, j + 1) = r(j)

Next j

r

Next i

r

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代码的讲解:

1 If Not r Then

MsgBox ("请注意:原有表将删除!")

strSQL = "DROP TABLE " & strViewName

cnADO.Execute strSQL

End If

以上代码判断是否存在这个表,如果存在,那么删除。

2 strSQL = "CREATE VIEW " & strViewName _

& " AS SELECT * FROM 员工信息 " _

& "Where 职务= '员工'"

cnADO.Execute strSQL

MsgBox "查询表创建成功!", , "创建视图"

r

上述代码创建了查询表,并弹出对话框通知用户。

这里用的CREATE VIEW 就是创建视图的意思:在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。

SQL CREATE VIEW 语法

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

3 r

strSQL = "SELECT * FROM 普通员工表"

r strSQL, cnADO, 1, 3

For i = 0 To r - 1

Sheets("Sheet1").Cells(1, i + 1) = r(i).Name

Next i

For i = 1 To r

For j = 0 To r - 1

Sheets("Sheet1").Cells(i + 1, j + 1) = r(j)

Next j

r

Next i

上述代码先关闭之前的rsADO,然后新建立一个查询的SQL,用于向工作表输出数据

4 r

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

最后关闭连接和释放内存。

特别注意点:在上述代码中要注意的是在新的记录集建立之前一定要关闭原先的记录集,但这个时候的数据库连接不用关闭,因为还是用的同一个数据库。

好了,我们看看我们的运行结果:

看看数据库的表:

今日内容回向:

1 如何建立一些查询表?

2 查询表建立后输出的时候要注意什么?

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何创建操作查询,如何创建参数查询,access如何创建查询,access创建操作查询,创建操作查询的注意事项,创建一个操作查询”边界阅读