贯彻大额,Recordset记录会集的动态查询

2019-08-22 作者:科技展览   |   浏览(111)

我们好,大家明天多福多寿VBA数据库应用方案的就学,那讲的开始和结果是采取ADO完毕工作表数据的排重处理。

大家好,明日雄起雌伏讲师VBA与数据库建设方案的第10讲内容,展开三个钦命的数据库记录集,把所得的数据展现到事业表中的秘诀。明天的剧情是和第8讲,第9讲内容是相连接,在第9讲中讲了开发记录集的用的措施是rsADO.Open strSQL, cnADO, 1, 3,在第8讲中我们讲了还会有一种是Execute方法,明日大家就讲利用这种方法到达我们的指标,同有时间在SQL语句中的大家将查询设置为贰个动态的询问。

实例:在自己的办事表中有如下的多寡,

如上面包车型大巴职业表文件:大家要基于I2单元格的唤起部门新闻来寻觅职业表的数额并将查询的结果放在侧边包车型大巴区域:

图片 1

图片 2

很明朗有一部分型号和生产厂的数目是重复的,大家的对象是把那个重新的值只是保留多少个,然后把清洁的数额放到一页文件中,该如何成功呢?

大家看代码:

下边笔者付诸小编的代码:

Sub mynzra2()

Sub mynzRecords_45() '第45讲,利用ADO,实现工作表数据的排重管理

Dim cnADO, rsADO As Object

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim strPath, strTable, strSQL As String

Dim i As Integer

Set cnADO = CreateObject("ADODB.Connection")

strPath = ThisWorkbook.Path & "mydata.accdb"

Dim Sht1, Sht2 As Worksheet

Set cnADO = CreateObject("ADODB.Connection")

Set Sht1 = Worksheets

With cnADO

Set Sht2 = Worksheets

.Provider = "Microsoft.ACE.OLEDB.12.0"

Sht1.Activate

.Open strPath

'建构一个ADO的连接

End With

strPath = ThisWorkbook.FullName

strSQL = "SELECT * FROM 职员表 WHERE 部门= '" & Cells & " '"

cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;" _

Set rsADO = cnADO.Execute

& "Extended Properties=Excel 12.0;" _

Columns.Select

& "Data Source=" & strPath

Selection.ClearContents

strSQL = "SELECT DISTINCT 型号,生产厂 FROM [数据$]"

Cells.Select

Cells.ClearContents

For i = 0 To rsADO.Fields.Count - 1

Range("A1:B1") = Array("型号", "生产厂")

Cells = rsADO.Fields.Name

Range.CopyFromRecordset cnADO.Execute

Next i

cnADO.Close

Range.CopyFromRecordset rsADO

Set cnADO = Nothing

rsADO.Close

End Sub

cnADO.Close

代码的截图:

Set rsADO = Nothing

图片 3

Set cnADO = Nothing

代码的任课:

End Sub

1 strSQL = "SELECT DISTINCT 型号,生产厂 FROM [数据$]" 那句代码的意思是在型号和生产厂的字段值中去掉重复的值。个中使用了SQL SELECT DISTINCT 语句。

代码截图:

语法:SELECT DISTINCT 列名称 FROM 表名称

图片 4

语法表明:在表中,大概会蕴藏重复值。那并小难点,但是,一时你可能希望仅仅列出不相同的值。关键词 DISTINCT 用于再次来到唯一不一致的值。

代码精讲:

2 Range("A1:B1") = Array("型号", "生产厂")

① Dim cnADO, rsADO As Object

Range.CopyFromRecordset cnADO.Execute

Dim strPath, strSQL As String

上述语句给出A1:B1填入的数组,然后从记录中拷贝出记录到A2过后的单元格中。

Dim i As Integer

代码的运转:

strPath = ThisWorkbook.Path & "mydata.accdb"

图片 5

Set cnADO = CreateObject("ADODB.Connection")

图片 6

下边包车型地铁代码和第9讲的平等,分别评释了多少个变量并成立了数据库的ADO连接,

今日内容回向:

② 在开垦数据库时同不常候设置了连年:

1 怎样贯彻列数据的排重?

With cnADO

2 怎样领会本节用的SQL语句SELECT DISTINCT 列名称 FROM 表名称。

.Provider = "Microsoft.ACE.OLEDB.12.0"

.Open strPath

End With

这种连接情势采纳了小编在第8讲中讲到其他的艺术,能够参见一下。

③strSQL = "SELECT * FROM 职员表 WHERE 部门= '" & Cells & " '"

大家要注重的执教一下那条语句,在此之前有对象关系问过这类语句的书写情势,明日能够一齐回答,这里要留神变量,变量是代码中的变量,在SQL语句中是不可能冒出变量的,如果常量并用引号括起来,所以在地方的言语中

a "SELECT * FROM 人员表 WHERE 部门= '" 为第一片段

b 最终的 " '"为第三有的

c Cells为第二片段。

七个部分中档用"&"连接起来。我们要必需牢记这种书写的格局,这样在程序的运行中SQL语句才精确,上面看看在运维进度中的SQL语句:

图片 7

④ Set rsADO = cnADO.Execute 对于那条语句,小编在第8讲的从头到尾的经过中,也讲到是一种展开记录集的措施之一,是Connection对象的Execute方法,通过地点语句,大家就能够施行查询,并将结果保存到集结的靶子中。下边小编将Connection对象的Execute方法重新特地的执教一下:

ADODB.Connection对象的Execute方法

该方法用于实行SQL语句。根据SQL语句实施后是或不是重回记录集,该措施的利用格式分为以下二种:

率先种:实践SQL查询语句时,将赶回查询获得的记录集。用法为:

Set对象变量名=连接对象.Execute

Execute方法调用后,会自行创设记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给钦点的靶子保存,以往对象变量就表示了该记录集对象。

其次种:试行SQL的可操作性语言时,未有记录集的回来。此时用法为:

连续对象.Execute "SQL语句" [,RecordAffected][, Option]

参数a RecordAffected为可选拔,此出可停放三个变量,SQL语句试行后,所生效的记录数会自动保存到该变量中。通过拜见该变量,就可领略SQL语句队多少条记下实行了操作。

参数b Option 可接纳,该参数的取值日常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第二个字符解释为命令文本。通过点名该参数,可使试行更加高效

在第9讲的讲授中,大家用了第三种格局,明天的代码有的是第一种代码。至于这种好,小编那边未有证实,能够依赖写代码人士的喜好就能够。

代码的运维结果:

图片 8

今日内容回向:

1 Connection对象的Execute方法有哪三种办法?

2 如何完成可控的内定询问?并将结果呈现?

本文由管家婆开奖结果发布于科技展览,转载请注明出处:贯彻大额,Recordset记录会集的动态查询

关键词: 管家婆开奖