⑴ sql Server2012用select語句導入2個EXCEL2010表格的問題
--你的代碼這樣改,Excel2010應該不是這個MICROSOFT.JET.OLEDB.4.0驅動
SELECT ORIGINCOUNTRY, SHVOLUMEINCMTR FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=C:UsersDesktopQ1.xlsb',Q1$) A
WHERE TRANSPORTMODE = 'AIR%'
union all
SELECT ORIGINCOUNTRY, SHVOLUMEINCMTR FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=C:UsersDesktopQ2.xlsb',Q2$) B
WHERE TRANSPORTMODE = 'AIR%'
--我的代碼,Excel2007是能查詢成功的
select ORIGINCOUNTRY, SHVOLUMEINCMTR from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:UsersDesktopQ1.xlsb;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Q1$]
WHERE TRANSPORTMODE = 'AIR%'
union all
select ORIGINCOUNTRY, SHVOLUMEINCMTR from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:UsersDesktopQ1.xlsb;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Q2$]
WHERE TRANSPORTMODE = 'AIR%'
⑵ 如何通過SELECT語句查詢出來後,用SQL語句把數據寫入到指定的EXCEL中
給個示例
Sub去重()
Dimcnn,SQL$
Setcnn=CreateObject("adodb.connection")
cnn.Open"Provider=Microsoft.jet.OLEDB.4.0;ExtendedProperties=Excel8.0;DataSource="&ThisWorkbook.FullName
SQL="SELECTDISTINCT[aac001],[aac003],部門代碼,但未編號,基數,個人,單位,金額FROM[明細$A3:H65536]"
Range("A2:I65536").ClearContents
Range("A2").CopyFromRecordsetcnn.Execute(SQL)
cnn.Close
Setcnn=Nothing
EndSub
你可以參考一下。
⑶ 如何用SQL語句查詢Excel數據
在宏編輯界面中進行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:=x
⑷ EXCEL 查詢SQL2005數據,select語句怎麼調用excel表格的文本
要用VBA做。
這是我以前寫的例子:
SubTT()
Setconn=NewADODB.Connection
Setrs=NewADODB.Recordset
Sheet1.Cells.Clear
Sheet3.[B8]=""
conn.ConnectionString="Driver={sqlserver};server="&Sheet3.[B2]&";uid="&Sheet3.[B3]&";pwd="&Sheet3.[B4]&";database="&Sheet3.[B5]
conn.Open
Sheet3.[B8]="連接成功!"
rs.OpenSheet3.[B6].Value,conn,adOpenKeyset,adLockPessimistic,adCmdText
rs.MoveLast
l=rs.RecordCount
Sheet3.[B9]=l
n=3
Fori=1Tol
IfTrim(rs.Fields("欄位1"))<>"欄位1"Then
Sheet1.Cells(n,"A")=Trim(rs.Fields("欄位1"))
n=n+1
Else
Sheet1.Cells(n,"B")=Trim(rs.Fields("欄位2"))
n=n+1
EndIf
Next
EndSub
⑸ 如何用SQL語句查詢Excel數據
如何用SQL語句查詢Excel數據?
Q:如何用SQL語句查詢Excel數據? A:下列語句可在SQL SERVER中查詢Excel工作表中的數據。
2007和2010版本:
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]
復制代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')
復制代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')
復制代碼
2003版本:
SELECT*FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]
復制代碼
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')
復制代碼
而且,還需要用擁有伺服器sysa
⑹ sql語言中 select 結果如何直接存為excel文件
給學弟一個很簡單的處理辦法!!!
先寫一個SQL文件,文件名為:1.sql ,內容如下:
use DB_PACKAGE(你要使用的資料庫)goselect * from BAG_INDEX_TAB(你要使用的表或者SQL語句)go然後在CMD窗口中執行如下命令(兩種方法均可,導出文件為111.xls):
1、isql -Usa -P -Sxb5 -w100000 -i1.sql 111.xls
2、isql -Usa -P -Sxb5 -w100000 -i1.sql -o 111.xls
當然,導出文件擴展名雖然為XLS,但實質仍然是文本文件。但這並不會妨礙EXECL對文件進行處理和保存。其中-w參數是指導輸出寬度,默認為80個字元。如果列表太多超限會自動折行。
當然,你也可以將上述命令行寫進BAT批處理文件中,執行起來會更方便一些。
⑺ 如果excel中想使用sql語句怎麼使用
excel中使用sql語句,使用快捷鍵alt+d+d+d調出鏈接表的對話框,選擇你要連接的表,然後確定,在編輯查詢命令文本中要寫sql語句,sql在excel中使用的是select語句。其實使用select主要是對數據的查詢和匯總,匯總時輸入聚合函數。總之有許多的知識需要學習,你可以在網上查閱一下sql
select語句的具體知識。
⑻ 如何用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
⑼ 如何用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的select from語句
單純的如上的語句是不能執行的,你必須配上一系列的打開資料庫的操作(譬如vb),而後編譯成exe文件,鏈接到任何地方都能執行。