⑴ 如何用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單元格的值了