1. 如何在EXCEL中運行sql查詢
SubTest()
'工具->引用->MicrosoftActiveXDataObjects2.0
'定義連接對象
DimcnnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
'連接字元串
strcn="Driver=sqlserver;Server=伺服器;database=資料庫;uid=sa;pwd=密碼"
cnn.Openstrcn
DimD1AsDate'開始日期
DimD2AsDate'結束日期
D1=Range("B2").Text
D2=Range("B3").Text
IfIsDate(D1)AndIsDate(D2)Then
rs.Open"sp_djcount'"&D1&"','"&D2&"'",strcn,3,1'存儲過程
rs.Open"Select*From表",strcn,3,1'sql語句
Range("A5").CopyFromRecordsetrs
MsgBox"成功!!!",vbInformation+vbOKOnly,"溫馨提示"
Else
MsgBox"請輸入開始日期和截止日期",vbQuestion+vbOKOnly,"溫馨提示"
EndIf
'關閉連接
cnn.Close
Setrs=Nothing
Setcnn=Nothing
EndSub
2. 如何用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;
3. 如何使用SQL語句實現對Excel工作表數據的查詢
--1.開啟遠程查詢支持
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'AdHocDistributedQueries',1
reconfigure
--2.鏈接ExcelMicrosoftACE12.0OLEDBProvider讀Excel數據(注意Excel必須事先關閉)
select*from
openrowset('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;DATABASE=C:/Users/nichk/Desktop/data.xls',Sheet1$);
--3.記得用完選項後,關閉這些選項
execsp_configure'AdHocDistributedQueries',0
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure
--4.查看是不是關閉
execsp_configure
記得電腦必須安裝oledb提供程序(可搜索AccessDatabaseEngine.exe在微軟官網下載安裝),不同的版本訪問方式不一樣,如下是各版本的訪問方式:
-->Jet引擎訪問Excel97-2003
select*fromOpenRowSet('Microsoft.Jet.OLEDB.4.0','Excel8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls','select*from[Sheet1$]')
select*fromOpenRowSet('Microsoft.Jet.OLEDB.4.0','Excel8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls',[Sheet1$])
select*fromOpenDataSource('Microsoft.Jet.OLEDB.4.0','Excel8.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]
select*fromOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource=D:/97-2003.xls;ExtendedProperties="Excel8.0;HDR=Yes;IMEX=1"')...[Sheet1$]
-->ACE引擎訪問Excel97-2003
select*fromOpenRowSet('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls','select*from[Sheet1$]')
select*fromOpenRowSet('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls',[Sheet1$])
select*fromOpenDataSource('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;IMEX=1;Database=D:/97-2003.xls')...[Sheet1$]
select*fromOpenDataSource('Microsoft.ACE.OLEDB.12.0','DataSource=D:/97-2003.xls;ExtendedProperties="Excel12.0;HDR=Yes;IMEX=1"')...[Sheet1$]
-->ACE引擎訪問Excel2007
select*fromOpenRowSet('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx','select*from[Sheet1$]')
select*fromOpenRowSet('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx',[Sheet1$])
select*fromOpenDataSource('Microsoft.ACE.OLEDB.12.0','Excel12.0;HDR=Yes;IMEX=1;Database=D:/2007.xlsx')...[Sheet1$]
select*fromOpenDataSource('Microsoft.ACE.OLEDB.12.0','DataSource=D:/2007.xlsx;ExtendedProperties="Excel12.0;HDR=Yes;IMEX=1"')...[Sheet1$]
4. 如何用sql查詢excel數據
在通過ADO對Excel對象進行連接時(此時Excel則認為是一個數據源),需要配置對Excel數據源對應的連接串,這個連接串中包括了Provider信息(其實類似對資料庫進行連接操作時,都需要指定連接字元串),以下是一行連接串源代碼: strConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strExcelFilePath & ";Extended Properties=Excel 12.0" 這里的Provider使用了Microsoft.ACE.OLEDB.12.0,其實除了Microsoft.ACE.OLEDB.12.0,還有Microsoft.Jet.OLEDB.4.0,它們倆者之間有什麼聯系和區別呢: 共同點:都是做為連接Excel對象的介面引擎 不同點: 對於不同的Excel版本,有兩種介面可供選擇:Microsoft.Jet.OLEDB.4.0(以下簡稱 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下簡稱 ACE 引擎)。 Jet 引擎,可以訪問 Office 97-2003,但不能訪問 Office 2007。 ACE 引擎是隨 Office 2007 一起發布的資料庫連接組件,既可以訪問 Office 2007,也可以訪問 Office 97-2003。 另外:Microsoft.ACE.OLEDB.12.0 可以訪問正在打開的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。 所以,在使用不同版本的office時,要注意使用合適的引擎。 A:下列語句可在SQL SERVER中查詢Excel工作表中的數據。 2007和2003都可用 SELECT * FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0','Data Source="D:\test1.xls";User ID=Admin;Password=;Extended properties="Excel 12.0 Xml;HDR=YES;IMEX=1";')...[Sheet1$] 2007和2010版本: 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
5. EXCEL中能不能直接執行SQL語句
1、需要導入的數據如圖。
6. 如果excel中想使用sql語句怎麼使用
excel中使用sql語句,使用快捷鍵alt+d+d+d調出鏈接表的對話框,選擇你要連接的表,然後確定,在編輯查詢命令文本中要寫sql語句,sql在excel中使用的是select語句。其實使用select主要是對數據的查詢和匯總,匯總時輸入聚合函數。總之有許多的知識需要學習,你可以在網上查閱一下sql
select語句的具體知識。