vba数据库查询
‘壹’ 利用VBA从Access数据库中查找数据
这当然可以查找啦!因为本身你就可以从里面查到其他的数据和总的数据来源。
‘贰’ VBA 连接Access数据库查询
你数据对不上是少数据吗?你的语句中用了like,但没有通配符,试试修改
sqls = "SELECT * FROM NDYX where FIELD(0) like'*" & a & "*'" '定义SQL查询命令字符串"
‘叁’ Excel使用VBA在指定框中输入数据库查询出的数据
参考下面
网页链接
‘肆’ VBA 要写一个在数据库查询的代码,要如何修改才是正确的写法
.FindFirst "工单编号='" & TextBox118.Value & "'" & " AND 物料编号 OR 替代物料3 OR 替代物料2 LIKE '%" & TextBox40.Value & "%'"
AND前少了空格是最主要的
‘伍’ vba sql查询
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 & "'"
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" 开头的人
‘陆’ vba如何调用Access的查询,并显示查询结果
1.点击:创建--宏。打开宏编辑器。
‘柒’ 如何用Excel VBA构建数据查询界面
一般有2种方式。
1种是在Sheet页面设计:
后台VBA连接SQLServer,我连接的是Objects 2.8