⑴ 如何用sql语句查询Excel数据
SELECT *
FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0',
'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')
2003版本:
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')
而且,还需要用拥有服务器sysadmin角色权限的登录帐号,先执行下列语句打开SQL SERVER的'Ad Hoc Distributed Queries'开关。
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;
执行查询后,再用相反顺序的语句,关闭'Ad Hoc Distributed Queries'开关。
exec sp_configure 'Ad Hoc Distributed Queries',0;
reconfigure;exec sp_configure 'show advanced options',0;reconfigure;
⑵ 在excel中查询sql数据库
查询是数据库最常用的操作,也是最重要的操作.SQL语言提供了SELECT语句进行数据库的查询,该语句的一般格式如下:SELECT select listFROM table source!WHE咫search_ condition][GROUP BY group一y_expression]I HAVING search condition][ ORDER BY order expression[ASC I DESC]]其主要元素说明如下:select list要选择的列或表达式的集合。table source基本表或者视图的集合.search condition进行查询的条件.groupee by_expression可以根据某些特定的列进行分组。search condition分组的条件值.order expression查询结果是按照列的集合来进行升序或者降序排序.由于SELECT语句的复杂性,一下面例子涉及到一个客户、订单数据库。客户基本信息表:Customer(CustomerlD,CompanyName,Address,City, Phone, Fax)Customer由客户编号(CustomerlD )、公司名称(CompanyName)、公司地址(Address) .公司所在城市(City)、公司电话(Phone)和传真(Fax) 6个属性组成,其中客户编号(CustomerlD )是关键字.商品信息表:Proct(ProctID, ProctName,UnitPrice)Proct山产品编号(ProctID )、产品名称(ProctName)和产品单价(UnitPrice )3个属性组成,其中产品编号(ProctID )是关键字。客户汀单表:Orders(OrderlD,CustomerID,ProctID,OrderDate,RequiredDate,OrderQuantity)Order由订单编号(OrderlD )、客户编号(CustomerlD )、产品编号(ProctID )、订单日期(OrderDate )、订单预交日(RequiredDate)和订单数量(OrderQuantity) 6个属性组成,其中OrderlD是关键字.
⑶ Excel表中连接sql并使用sql语句引用excel单元格数据作为查询条件
1、将需要处理的记录复制到一个新的工作表,然后将在数据库表中存在唯一值的列(比如物料编码)后插入一列,用 CONCATENATE函数将其前后加上“'”。
⑷ 怎么在excel中正确使用SQL的查询语句
ALT+F11,打开VBE,插入一个模块,把以下代码复制进去:
Sub dosql(sql, a As Range)
Dim Conn As Object
Set Conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
PathStr = ThisWorkbook.FullName
Select Case Application.Version * 1
Case Is <= 11
strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & PathStr
Case Is >= 12
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
End Select
Conn.Open strConn
Set rst = Conn.Execute(sql)
If VBA.InStr(sql, "select") > 0 or VBA.InStr(sql, "Select") > 0 Then
With a.Parent
For i = 0 To rst.fields.Count - 1
.Cells(1, a.Column + i).EntireColumn.ClearContents
.Cells(1, a.Column + i) = rst.fields(i).Name
Next
End With
a.Offset(1).CopyFromRecordset rst
For i = 0 To rst.fields.Count - 1
a.Parent.Cells(1, a.Column + i).EntireColumn.AutoFit
Next
End If
Conn.Close
End Sub
Public Sub t()
'sql = "这里写你的查询语句"
dosql sql, [E1]
End Sub
1、记得运行代码前要保存工作簿
2、查询语句中,表名是[工作表名$]这样的格式
3、dosql sql, [E1]中的E1,就是要放查询结果的区域左上角那个单元格。
⑸ excel使用sql语句查询功能.
在宏编辑界面中进行SQL数据查询以及生成报表的代码如下:
Sub Static()
Dim objNewWorkbook As Workbook '定义一个Workbook对象
Set objNewWorkbook = Workbooks.Add(ThisWorkbook.Path & "模板.xlt") '使用模板文件新建一个EXCEL报表生成文件
Set objConnection = CreateObject("ADODB.Connection") '创建一个ADO连接
objConnection.Open "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties='Excel 8.0;Hdr=yes;Imex=1';Data Source=" & ThisWorkbook.FullName '设置连接字符串
strCommand = "select 施工人, count(*) as 拆电话 from [" & Sheet1.Name & "$] where 施工动作 = '拆' and 专业类型 = '电话' group by 施工人" '查询表单一中的数据源进行统计
?objNewWorkbook.Sheets(1).Range("A3").CopyFromRecordset objConnection.Execute(strCommand)
2.将查询统计结果输出到目的报表文件的表单1的从A3开始的区域中
3.下面代码是调用EXCEL的排序方式进行汉字排序,这里SQL语句中的排序对于汉字排序与期望结果不同
4.使用EXCEL中的排序方法是根据EXCEL版本不同调用有所区别
Select Case Application.Version
Case "11.0":
objNewWorkbook.Sheets(1).Range("A3:M" & CStr(intSumRow - 1)).Sort Key1:=objNewWorkbook.Sheets(1).Range("A3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
Case "12.0":
objNewWorkbook.Sheets(1).Sort.SortFields.Clear
objNewWorkbook.Sheets(1).Sort.SortFields.Add Key:=Range("A3:A" & CStr(intSumRow - 1)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With objNewWorkbook.Sheets(1).Sort
.SetRange Range("A2:M" & CStr(intSumRow - 1))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Case Else
End Select
objConnection.Close
End Sub
⑹ 如何在Excel中使用SQL语言实现数据查询
1、选中表格后单击右键选择“定义名称”。
2、单击后,出现命名对话框。
3、这里将表1和表2分别命名为Table1和Table2。
4、选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项。
5、在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉。
6、点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表xxx.xlsx。
7、点击确定后之后弹出添加表的对话框。
8、点击确定后之后弹出添加表的对话框。
9、输入SQL语句的按钮,弹出输入SQL语句的对话框 输入SQL,看到筛选出来的数据表。
10、将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”。
⑺ 如何在Excel中使用SQL语言实现数据查询
1.选中表格后单击右键选择“定义名称”
2.单击后,出现命名对话框
3.这里将表1和表2分别命名为Table1和Table2。
4.选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项
5.在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉,
6.点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表xxx.xlsx
7.点击确定后之后弹出添加表的对话框
8.点击确定后之后弹出添加表的对话框
9.输入SQL语句的按钮,弹出输入SQL语句的对话框 输入SQL,看到筛选出来的数据表
10.将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”,纯手打,望采纳答案哦,谢谢
⑻ 在EXCEL中查询SQL数据库
用SqlCel查询Sql Server数据库。SqlCel可以同时支持Mysql,sql server,access,oracal。sqlcel的sql语句可以引用excel单元格的值作为变量。比如楼主要将123替换成Sheet1工作表的A1单元格的内容,那么SQL语句可以这么写
select * from AAA WHERE A = [Sheet1!A1]
这样执行就可以引用A1单元格的值了