下面是有關(guān)select語句的幫助,請注意 in SELECT 語句 命令 Microsoft Jet數(shù)據(jù)庫引擎從數(shù)據(jù)庫里返回信息,作為一組記錄。 語法 SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...][IN外部數(shù)據(jù)庫] [WHERE...] ] [GROUP BY...] ] [HAVING...] ] [ORDER BY...] ] [WITH OWNERACCESS OPTION] IN 子句 標(biāo)識出外部數(shù)據(jù)庫中的表,例如dBASE或Paradox數(shù)據(jù)庫,或Microsoft Jet外部數(shù)據(jù)庫,Microsoft Jet數(shù)據(jù)庫引擎能夠與之相連。 語法 標(biāo)識目標(biāo)表: [SELECT | INSERT] INTO destination IN {path | ["path" "type"] | ["" [type; DATABASE = path]]} 標(biāo)識數(shù)據(jù)源表: FROM tableexpression IN {path | ["path" "type"] | ["" [type; DATABASE = path]]} 包含 IN 子句的SELECT 語句具有以下幾個部分: 部分 說明 destination 外部表的名稱,將數(shù)據(jù)插入表中。 tableexpression 表的名稱,可從這些表中獲取數(shù)據(jù)。這個變量可能是一個單獨的表名,一個已存查詢,或是 INNER JOIN, LEFT JOIN, 或 RIGHT JOIN. Path 目錄或文件的整個路徑,而且這些目錄或文件包含 table 。 type 數(shù)據(jù)庫類型的名稱,如果數(shù)據(jù)庫不是 Microsoft Jet 數(shù)據(jù)庫(例如 dBASE III、dBASE IV、Paradox 3.x或Paradox 4.x),則用此類型創(chuàng)建 table 。 說明 通過 IN 你一次只可以連接一個外部數(shù)據(jù)庫
在某些情況中,path 參數(shù)可引用包含數(shù)據(jù)庫文件的目錄。例如,當(dāng)使用 dBASE、FoxPro或 Paradox 數(shù)據(jù)庫表時,path 參數(shù)將指定包含 .dbf 或 .db 文件的目錄。由 destination 或 tableexpression 參數(shù)可得到表文件的名稱。 為了指定非 Microsoft JET 數(shù)據(jù)庫,可在名稱之后附加分號 (;),并用單引號 (‘ ‘) 或 (" ") 雙引號將它括入。例如可用 ‘dBASE IV;‘ 或 "dBASE IV;"這兩種寫法。 也可使用 DATABASE 保留字指定外部數(shù)據(jù)庫。例如,以下示例指定相同的表: ... FROM Table IN "" [dBASE IV; DATABASE=C:\DBASE\DATA\SALES;]; ... FROM Table IN "C:\DBASE\DATA\SALES" "dBASE IV;" 注意為改進(jìn)性能并方便使用,請使用鏈接表而不要用 IN。
IN 子句示例 下列表顯示您如何使用 IN 子句來捕獲外部數(shù)據(jù)庫的數(shù)據(jù)。在每一示例之中,假設(shè)客戶表是保存在外部數(shù)據(jù)庫之中。 外部數(shù)據(jù)庫 SQL 語句 Microsoft® Jet 數(shù)據(jù)庫 SELECT CustomerID FROM Customers IN OtherDB.mdb WHERE CustomerID Like "A*"; dBASE III 或 IV. 捕獲數(shù)據(jù)由 一 dBASE III 表,以 "dBASE III;" 替代 "dBASE IV;"。 SELECT CustomerID FROM Customer IN "C:\DBASE\DATA\SALES" "dBASE IV;" WHERE CustomerID Like "A*"; dBASE III 或 IV 使用數(shù)據(jù)庫語法。 SELECT CustomerID FROM Customer IN "" [dBASE IV; Database=C:\DBASE\DATA\SALES;] WHERE CustomerID Like "A*"; Paradox 3.x 或 4.x. 若要由一Paradox version 3.x 表捕獲數(shù)據(jù),以 "Paradox 3.x;" 替代 "Paradox 4.x;"。 SELECT CustomerID FROM Customer IN "C:\PARADOX\DATA\SALES" "Paradox 4.x;" WHERE CustomerID Like "A*"; Paradox 3.x 或 4.x 使用數(shù)據(jù)庫語法. SELECT CustomerID FROM Customer IN "" [Paradox 4.x;Database=C:\PARADOX\DATA\SALES;] WHERE CustomerID Like "A*"; Microsoft EXCEL工作表 SELECT CustomerID, CompanyName FROM [Customers$] IN "c:\documents\xldata.xls" "EXCEL 5.0;" WHERE CustomerID Like "A*" ORDER BY CustomerID; 在工作表之中的一個命名范圍 SELECT CustomerID, CompanyName FROM CustomersRange IN "c:\documents\xldata.xls" "EXCEL 5.0;" WHERE CustomerID Like "A*" ORDER BY CustomerID; ----------------------------------------------------------------------------------------------------- 關(guān)于文本文件可以這樣
select * from [Text;FMT=Delimited;HDR=Yes;DATABASE=C:\;].[aparm#txt]; |
關(guān)于在IN子句中查詢文本文件如何寫鏈接字串,你可以參考: http://support.microsoft.com/default.aspx?scid=kb;en-us;234201&Product=acc 關(guān)于Excel可以這樣
insert into 表 SELECT * FROM [Excel 5.0;HDR=YES;DATABASE=c:\test.xls].[sheet1$]; |
說明: c:\test.xls 是excel文件名 sheet1是要導(dǎo)入的工作表名 其實,你要獲取鏈接字串還有一個方便的辦法,就是使用鏈接向?qū)?,先手工鏈接一個文件到你的數(shù)據(jù)庫中,然后執(zhí)行以下代碼:
Function displayLinkStringFromLinkTable() ‘先到工具菜單->引用 中引用 Microsoft ADO Ext. 2.X for DDL and Security ‘引用 ADOX Dim strTableName strTableName = "001" ‘001是鏈接表的名字 Dim cat As New ADOX.Catalog Dim objTable As ADOX.table Set cat.ActiveConnection = CurrentProject.Connection For Each objTable In cat.Tables If objTable.Name = strTableName Then Debug.Print objTable.Properties("Jet OLEDB:Link Provider String").Name Debug.Print objTable.Properties("Jet OLEDB:Link Provider String").Value End If Next objTable End Function |
|