㈠ 如何使用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$]
㈡ 在excel中用sql讀取sheet1裡面自定義表
你應該是在Sheet1中的某個區域「建了一個表」,可以將這個區域的第一行作為標題行,加上相關的列標簽/列標題,例如:姓名 出生日期 住址。
然後,
select 姓名,出生日期,住址 from [shee1$]
如果你的表a區域有100行,100行下面還有其他不需要的數據,就改成
select top 100 姓名,出生日期,住址 from [shee1$]
㈢ 如何在excel表格中讀取sql資料庫數據
excel程序自帶的外部數據連接功能,可以連接sql伺服器。具體步驟為:
1、選擇【數據】選項卡,在【獲取外部數據】分組,找到【自其他來源】。
2、單擊【自其他來源】按鈕,打開【選擇來源】下拉菜單。
3、選擇【來自sql
server】打開【數據連接向導】對話框。
4、填寫伺服器名稱、登錄的用戶名及密碼等信息,即可成功連接。
㈣ 怎麼用sql語句讀取excel文件啊
//for get driver...
char szBuf[2001];
WORD cbBufMax = 2000;
WORD cbBufOut;
char *pszBuf = szBuf;
CString sDriver;
//for read the file...
CDatabase database;
CString sSql;
CString sItem1,sItem2;
CString sDsn;
CString sFile;
//-------------------在這里把sFile賦值為你要讀取的xls文件的文件名.
///////////////////////////////////////
// Get the names of the installed drivers
//////////////////////////////
if(!SQLGetInstalledDrivers(szBuf,cbBufMax,& cbBufOut))
sDriver="";
else
{
// Search for the driver...
do
{
if( strstr( pszBuf, "Excel" ) != 0 )
{
// Found !
sDriver = CString( pszBuf );
break;
}
pszBuf = strchr( pszBuf, '\0' ) + 1;
}
while( pszBuf[1] != '\0' );
}
// Retrieve the name of the Excel driver. This is
// necessary because Microsoft tends to use language
// specific names like "Microsoft Excel Driver (*.xls)" versus
// "Microsoft Excel Treiber (*.xls)"
// sDriver = GetExcelDriver();
if( sDriver.IsEmpty() )
{
AfxMessageBox("No Excel ODBC driver found");
exit(0);
}
sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
TRY
{
// Open the database using the former created pseudo DSN
database.Open(NULL,false,false,sDsn);
// Allocate the recordset
CRecordset recset( &database );
// Build the SQL string
// Remember to name a section of data in the Excel sheet using "Insert->Names" to be
// able to work with the data like you would with a table in a "real" database. There
// may be more than one table contained in a worksheet.
sSql = "SELECT [A],[B]" //把A,B為xls文件裡面的列,如果要讀取多列的話,用,隔開
"FROM [Sheet1$] " //xls文件裡面的第一個表,如果xls文件里的第一個表不是Sheet1這個名字的話,最好改為Sheet1
"ORDER BY [A],[B]"; //從小到大輸出,A列為一級,B列為二級
// Execute that query (implicitly by opening the recordset)
recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);
// Browse the result
while( !recset.IsEOF() )//不斷讀取A,B列的數據
{
//Read the result line
recset.GetFieldValue("A",sItem1); //把A列的數據傳給sItem1
recset.GetFieldValue("B",sItem2); //把B列的數據傳給sItem2
//注意!這里的sItem1,sItem2是不斷更新的
// Close the database
database.Close();
}
CATCH(CDBException, e)
{
// A database exception occured. Pop out the details...
AfxMessageBox("Database error: "+e->m_strError);
}
END_CATCH;
㈤ 怎樣通過SQL讀取Excel表名
先用函數獲取sheet的名字,然後傳入select 列表中返回就可以了。
MySheet = Application.Caller.Worksheet.Name
select MySheet ,xxx from 表 where xxx=yyyy
㈥ 用SQL語句從EXCEL表讀取數據
這是因為excel的一個限制,因為如果這樣寫的話在excel中是按字母的順序排列列名的
㈦ 如何用SQL語句讀出EXCEL是的數據,請大家幫幫忙謝謝了
電腦的環境變數要設置一下吧,在管理工具理有一個數據源,要追加一個Miscrosoft
Access
Driver(*.mdb)的驅動
再看看別人怎麼說的。
㈧ 在excel中如何使用vba實現將sql的數據快速寫入excel
DimconnAsNewADODB.Connection
connStr="Driver={SQLServer};DataBase=test;Server=(local);UID=sa;PWD=123"
conn.OpenconnStr'連接資料庫
DimrsAsNewRecordset
sql="select*froma"'查看錶a
rs.Opensql,conn,3,3
ifNotrs.EOFthen
ForiCols=0Tors.fields.Count-1
Sheets(1).Cells(1,iCols+1).Value=rs.fields(iCols).Name
NextiCols
Sheets(1).Cells(2,1).CopyFromRecordsetrs
endif
㈨ 誰能給我一個EXCEL VBA往SQL資料庫讀取和寫入記錄的例子
讀取和寫入操作方式一樣,唯一不同的是sql語句,讀取用select,讀取用insert,以讀取為例子,錄入如下代碼:
'sql完整例子
Sub testSql()'定義連接對象
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'定義連接字元串
Dim conStr As String
Dim sqlstr As String
'連接字元串-以下是連接MSSQL資料庫
conStr = "Provider=sqloledb; " _
& "Server=192.168.1.121; " _
& "Database=DATABASENAME;Uid=admin;Pwd=admin;"
cnn.Open conStr
sqlstr = "SELECT * from tablename"
rs.Open sqlstr, cnn
Range("a2").CopyFromRecordset rs
rs.Close
cnn.Close
End Sub