『壹』 EXCEL VBA里怎麼用sql 的SELECT 語句
可以做到,但不是三言兩語能說清楚的。至少VBA程序不會太短
如果用手工操作,不藉助VBA,可以利用Excel的「數據-導入外部數據」菜單將SQL中的表先導入到Excel中,那麼Excel數據與SQL數據的比較就變成了兩個Excel表列的比較,很容易用數組公式或相關函數標識出重復的數據項的。
『貳』 excel如何導入sql表
在SQL SERVER中右擊資料庫,選擇菜單「任務」--「導入數據」即可。
在導入過程中,勾選將第一行做為列標題就可以,你還可以定義每一欄位的欄位類型。
『叄』 excel vba ado的一條sql語句 有錯誤 請指正
excel的這種sql訪問方式中,列的類型是根據該列第一行數據判斷的,在這列第一行數據201前加單引號試試
『肆』 Excel ADO sql 中怎麼用判斷語句語句
寫法如下:
ado對象:
if ado.row.count = 1 then
具體的處理代碼
end if
『伍』 excel向sql導入
檢查下路徑..
1、將SQL SERVER中查詢到的數據導成一個Excel文件
T-SQL代碼:
EXEC master..xp_cmdshell 'bcp 庫名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
參數:S 是SQL伺服器名;U是用戶;P是密碼
說明:還可以導出文本文件等多種格式
實例:EXEC master..xp_cmdshell 'bcp
saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp
"SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
2、在SQL SERVER里往Excel插入數據:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)
T-SQL代碼:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]
(bestand, prokt) valueS (20, 'Test')
SQLServer和Excel
1、向Excel查詢
select * from OpenRowSet(』microsoft.jet.oledb.4.0』,』Excel 8.0;HDR=yes;database=c:\book1.xls;』,』select * from [Sheet1$]』) where c like 』%f%』
select * from
OPENROWSET(』MICROSOFT.JET.OLEDB.4.0』
,』Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls』,[sheet1$])
1)hdr=yes時可以把xls的第1行作為欄位看待,如第1個中hdr=no的話,where時就會報錯
2)[]和美圓$必須要,否則M$可不認這個賬
2、修改Execl
update OpenRowSet(』microsoft.jet.oledb.4.0』,』Excel 8.0;hdr=yes;database=c:\book1.xls;』,』select * from [Sheet1$]』)
set a=』erquan』 where c like 』%f%』
3、導入導出
insert into OpenRowSet(』microsoft.jet.oledb.4.0』,』Excel 8.0;hdr=yes;database=c:\book1.xls;』,』select * from [Sheet2$]』)(id,name)
select id,name from serv_user
或BCP
master..xp_cmdshell』bcp "serv-htjs.dbo.serv_user" out "c:\book2.xls" -c -q -S"." -U"sa" -P"sa"』
從Excel向SQLServer導入:
select * into serv_user_bak
from OpenRowSet(』microsoft.jet.oledb.4.0』,』Excel 8.0;HDR=yes;database=c:\book1.xls;』,』select * from [Sheet1$]』)
如果表serv_user_bak不存在,則創建
有關BCP和分布式查詢的詳細解答,就查SQLServer自帶的幫助吧
SQLServer和txt文件、HTML文件、VFP文件的數據交換都顯得非常容易了。。。。
如果你是用.NET進行數據的導入,那麼也可以用SqlBulkCopy 類. SqlBulkCopy 類允許編寫提供類似功能的託管代碼解決方案。還有其他將數據載入到 SQL Server 表的方法(例如 INSERT 語句),但相比之下 SqlBulkCopy 提供明顯的性能優勢。
使用 SqlBulkCopy 類只能向 SQL Server 表寫入數據。但是,數據源不限於 SQL Server;可以使用任何數據源,只要數據可載入到 DataTable 實例或可使用 IDataReader 實例讀取數據。
『陸』 Excel2003中,如何將將兩張工作表中的相同名稱對比在一起
按我之前給你的表格,庫存數已經自動統計出來了,「品規」在J列,「庫存數」在K列
可在另一工作表的任一列(假設在A1吧)輸入
=INDEX(Sheet1!J:J,SMALL(IF(Sheet1!J$4:J$100<>"",ROW($4:$100),4^8),ROW(1:1)))&""
數組公式,輸入後先不要回車,按Ctrl+Shift+Enter結束計算,再向下填充
再在B1輸入
=VLOOKUP(A1,Sheet1!J:K,2,0)回車並向下填充。
用=SUMIF(Sheet1!J:J,A1,Sheet1!K:K)也行(反正只有一個數據,不用匯總)
你的品名自己輸入也行,就不要上面的第一道數組公式;第二道公式可加入判斷函數IF等:
=IF(ISERROR(VLOOKUP(A1,Sheet1!J:K,2,0)),"",VLOOKUP(A1,Sheet1!J:K,2,0))
當輸入庫存表沒有的品規,庫存列顯示空值。
『柒』 將excel表導入到SQL資料庫
選中sql server2005中的資料庫,點擊滑鼠右鍵,選擇任務,然後選擇導入數據,然後點擊下一步,然後在數據源中選擇microsoft excel,然後選擇你要導入的excel的路徑,excel版本請選擇最高,在這里需要說的是,如果你的excel文件是2007的或者2010的,請你使用office將其存為2003的excel文件,也就是說,需要將xlsx文件存儲為xls,然後點擊下一步,然後選擇你要導進的地址,也就是IP,如果是導入到本機就填 . 號,然後選擇你要導進的資料庫就好了,一步一步來,有提示的
希望我的回答對你會有幫助,如果以上回答沒有解決你的問題,請追問詳述,當然也可以直接 HI 我,我網路隨時在線,解決問題後望即時採納,謝謝!
『捌』 excel導入sql的問題
9月20日 12:47
******* 導出到excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'
/*********** 導入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
SELECT cast(cast(科目編號 as numeric(10,2)) as nvarchar(255))+' ' 轉換後的別名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
---------------------------------------------------------------
EXCEL TO SQL SERVER
先用ODBC建立一個數據源,數據源指向sql server的表,然後用TTABLE控制項聯上資料庫,
再建立一個OleObject,然後用Append,Post把數據導入到EXCEL表。
實例:
var
MSExcel:Variant;//定義一個全程變數
MSExcel := CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Open(Edit1.Text);//創建一個OleObject
Table.Active:=true;
Table.Append;
Table.FieldByName('欄位名').Value:=MSExcel.Cells[rows_i,1].Value;
Table.Post;//實現導入
如果有不明白給我mail: [email protected]
---------------------------------------------------------------
不行的話
你可以用server里的execl的空件
excelwork.open();
---------------------------------------------------------------
那dbexpress可以連接excel嗎?
ado怎麼去連接excel?謝謝
----------------------
不能,
要連接excel(把它當成資料庫連接)只能用ado來做.
其連接字元串的一個示例:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
注意
Properties=""Excel 8.0;HDR=Yes;IMEX=1""是一個參數,而不是多個
『玖』 VBA ADO SQL 導出到EXCEL後。內容是插入,能不能改正覆蓋
臨時開一個空白工作表,保存內容後在Copy過來,例如:
setwb=Workbooks.Add
wb.sheets(1).Range("A1").CopyFromRecordsetrs
wb.sheets(1).UsedRange.CopyWorksheets(3).Range("A17")
wb.CloseSaveChange:=False