Excel实例下载
  VBA  应用教程
    数据库SQL知识
设为首页
Select Into - 把检索的数据添加到新的数据表中
作者:bengdeng | 来源:Excel吧 | 时间:2008-10-20 | 阅读权限:游客 | 会员币:0 | 【

通过前面几篇 SQL语言教程 ,我们已了解Select 的三个子句与一些相关的内容,这篇要介绍的是第四个子句Into。

标题中,为什么不是只写Into而写的是Select Into,是要与下面一篇中Insert Into 第二种输入方法区别开来,我们曾经在http://www.excelba.com/Art/Html/299.html 中,说过Insert Into 还有一种是一次性输入多笔数据的方法,没有介绍,在我们了解了本篇的内容之后,下一篇会来了解与对比。

通过之前对Insert Into 的认识,我们可以看出Into的功能是向数据表中增加记录,其语法是:

SELECT 列名1,列名2…… INTO 新表格名 FROM 表格名

要注意的一点是,新表格名在数据库中应该是不存在的,否则就会出错。

下面举个例子,来来看一下Select Into 的应用。这个例子是吧出仓表中所有的铅笔的记录,添加到一个新的表名为“临时表”的数据表中。

Sub 进销存表数据库中出仓表里检索的数据生成新表()
'*******************************************
'时间:2008-10-20
'作者:bengdeng
'功能:在程序文件同一目录下进销存表数据库中出仓表里检索的数据生成新表
'注意:要在工具/引用中引用microsoft activex date objects x.x
'      其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim OldTableName As String
Dim NewTableName As String
Dim sSql As String
Dim tStr As String

WN = "进销存表.mdb"
OldTableName = "出仓表"
NewTableName = "临时表"
tStr = "铅笔"

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
                        "Data Source=" & ThisWorkbook.Path & "\" & WN
conn.Open
If conn.State = adStateOpen Then
    sSql = "Select * Into " & NewTableName & " From " & OldTableName & " Where 物品名称='" & tStr & "'"
    conn.Execute sSql
    MsgBox "成功把“" & OldTableName & "”中的所有的“" & tStr & "”记录汇总到“" & NewTableName & "”中!", , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub

运行上面的结果,我们可以看到,生成了一个结构与出仓表一样的临时表,同时把出仓表数据中所有物品名称为铅笔的数据添加在其中。因此,Select Into也常用来创建一个数据结构与已存在的数据表一样的数据表,只要把Where的条件设定为一个不可能存在的情况就可以了。

同样,我们也能出一段操作Excel文件的例子,代码如下:

Sub 进销存表文件中出仓表里检索的数据生成新表()
'*******************************************
'时间:2008-10-20
'作者:bengdeng
'功能:在程序文件同一目录下进销存表文件中出仓表里检索的数据生成新表
'注意:要在工具/引用中引用microsoft activex date objects x.x
'      其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim OldTableName As String
Dim NewTableName As String
Dim sSql As String
Dim tStr As String

WN = "进销存表.xls"
OldTableName = "出仓表"
NewTableName = "临时表"
tStr = "铅笔"

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
                        "Extended Properties=Excel 8.0;" & _
                        "Data Source=" & ThisWorkbook.Path & "\" & WN
conn.Open
If conn.State = adStateOpen Then
    sSql = "Select * Into [" & NewTableName & "] From [" & OldTableName & "$] Where 物品名称='" & tStr & "'"
    conn.Execute sSql
    MsgBox "成功把“" & OldTableName & "”中的所有的“" & tStr & "”记录汇总到“" & NewTableName & "”中!", , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub

要注意的是新表中的表名不需要加$,而旧表中应该加上$,到这一篇文章至,Select的语法与其子句就介绍完了,大家可以复制一下上面的代码,自己体会一下吧。

如果你不是从第一篇 SQL语言教程 看起,你需要到http://www.excelba.com/Soft/Html/119.html 下载文件,压缩文件包含三个文件,数据库文件——进销存表.mdb与Excel文件——进销存表.xls就是保存数据的文件,而主文件.xls就是主程序文件,以后大家的代码可以添加在这个文件的新模块里,然后再运行程序代码。

文章录入:admin | 浏览次数:
相关评论(以下网友评论只代表其个人观点,不代表Excel吧的观点或立场)
相关信息

关于本站 | 留言本站 | 友情连接 | 后台管理
Copyright © 2005 - 2008 Excel吧 Inc. All Rights Reserved.
HxCms Ver9.0  闽ICP备06001689号
关闭此窗口