百科狗-知识改变命运!
--

vba sql查询

乐乐12个月前 (12-05)阅读数 5#综合百科
文章标签语句字符

sql一般用在多条件查询,对数据库读写等。

1. VBA如何建立sql连接

A.在VBA Project 窗口中,“工具—引用—Microsoft ActiveX Data Objects 2.0 Library”,如下图所示

B. VBA语句

Private Sub CommandButton1_Click()

Dim cnn As ADODB.Connection’定义变量

Dim sql$, Stext$, i As Integer

Worksheets(3).Cells.Clear

Stext = IIf(TextBox1.Value = "", "*", TextBox1.Value)

Set cnn = CreateObject("adodb.connection")’生成对象

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName’打开数据库

If TextBox1 = "" Then

sql = "select * from [sheet2$]"’sql语句

Else

sql = "select * from [sheet2$] where 姓名 like '" & TextBox1.Value & "'"

vba sql查询

End If

Worksheets(3).[a1].CopyFromRecordset cnn.Execute(sql)’执行sql语句

cnn.Close

Set cnn = Nothing

End Sub

2. sub text()

Dim cnn As ADODB.Connection’定义变量

Dim rs as adodb.recordset

Set cnn = CreateObject("adodb.connection")’生成对象,若定义变量时为Dim cnn As New ADODB.Connection,此句可省略

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName’打开数据库

sql = "select * from [sheet2$] where 姓名 like '" & TextBox1.Value & "'"

rs.open sql,cnn,adOpenKeyset.adLockOptimistic’生成查询记录,为后面出书数据准备

Worksheets(3).[a1].CopyFromRecordset rs

end sub

________________________________________________________________________

以下根据网络整理

2 Select SQL语句

SELECT * FROM table_name WHERE column1 = xxx [AND column2 > yyy] [OR column3 zzz]

'*'表示全部的栏位都列出来,如果不全部列出,则可以写字段名称如 学号,姓名……;WHERE 之后是接条件式,把符合条件的资料列出来,table_name如果为工作表名称,书写格式[工作表名$],下同。

SELECT column1,AVG(column2) FROM table_name GROUP BY column1 HAVING AVG(column2) > xxx

说明: 1.GROUP BY: 以column1 为一组计算 column2 的平均值必须和 AVG、SUM等整合性查询的关键字一起使用。2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制。

复合性的查询:SELECT * FROM table_name1 WHERE EXISTS (SELECT * FROM table_name2 WHERE conditions )

说明:1.WHERE 的 conditions 可以是另外一个的 query。2. 在此是指存在与否。

SELECT column1,columns2,...FROM table_name

说明:把table_name 的特定栏位资料全部列出来

SELECT COUNT (*) FROM table_name WHERE column_name = xxx

说明:查询符合条件的资料共有几笔。

1.计算出总和,所选的栏位必须是可数的数字形态。2.除此以外还有 AVG() 是计算

SELECT SUM(column1) FROM table_name

说明:平均、MAX()、MIN()计算最大最小值的整合

SELECT * FROM table_name1 WHERE column1 BETWEEN xx AND yy

说明:BETWEEN 表示 column1 的值介於 xx 和 yy 之间。

3. update SQL语句

UPDATE table_name SET column1='xxx' WHERE conditoins

说明:1.更改某个栏位设定其值为'xxx'。

2.conditions 是所要符合的条件、若没有 WHERE 则整个 table 的那个栏位都会全部被更改。

4. deletesql语句

删除资料: DELETE FROM table_name WHERE conditions

说明:删除符合条件的资料。

说明:关于WHERE条件后面如果包含有日期的比较,不同数据库有不同的表达式

5.SQL中通配符用

"%" 表示零个或多个, "_"表示任何单一字符 [charlist] 字符列中的任何单一字符 [^charlist] [!charlist] 不在字符列中的任何单一字符 select * from databasename where fieldname like '%XX%' SELECT * FROM Persons WHERE City LIKE '[AOF]%' 从上面的 "Persons" 表中选取居住的城市以 "A" 或 "O" 或 "F" 开头的人 SELECT * FROM Persons WHERE City LIKE '[!AOF]%' 从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "O" 或 "F" 开头的人

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)