下面是有關(guān)select語(yǔ)句的幫助,請注意 in SELECT 語(yǔ)句 命令 Microsoft Jet數據庫引擎從數據庫里返回信息,作為一組記錄。 語(yǔ)法 SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...][IN外部數據庫] [WHERE...] ] [GROUP BY...] ] [HAVING...] ] [ORDER BY...] ] [WITH OWNERACCESS OPTION] IN 子句 標識出外部數據庫中的表,例如dBASE或Paradox數據庫,或Microsoft Jet外部數據庫,Microsoft Jet數據庫引擎能夠與之相連。 語(yǔ)法 標識目標表: [SELECT | INSERT] INTO destination IN {path | ["path" "type"] | ["" [type; DATABASE = path]]} 標識數據源表: FROM tableexpression IN {path | ["path" "type"] | ["" [type; DATABASE = path]]} 包含 IN 子句的SELECT 語(yǔ)句具有以下幾個(gè)部分: 部分 說(shuō)明 destination 外部表的名稱(chēng),將數據插入表中。 tableexpression 表的名稱(chēng),可從這些表中獲取數據。這個(gè)變量可能是一個(gè)單獨的表名,一個(gè)已存查詢(xún),或是 INNER JOIN, LEFT JOIN, 或 RIGHT JOIN. Path 目錄或文件的整個(gè)路徑,而且這些目錄或文件包含 table 。 type 數據庫類(lèi)型的名稱(chēng),如果數據庫不是 Microsoft Jet 數據庫(例如 dBASE III、dBASE IV、Paradox 3.x或Paradox 4.x),則用此類(lèi)型創(chuàng )建 table 。 說(shuō)明 通過(guò) IN 你一次只可以連接一個(gè)外部數據庫
在某些情況中,path 參數可引用包含數據庫文件的目錄。例如,當使用 dBASE、FoxPro或 Paradox 數據庫表時(shí),path 參數將指定包含 .dbf 或 .db 文件的目錄。由 destination 或 tableexpression 參數可得到表文件的名稱(chēng)。 為了指定非 Microsoft JET 數據庫,可在名稱(chēng)之后附加分號 (;),并用單引號 (‘ ‘) 或 (" ") 雙引號將它括入。例如可用 ‘dBASE IV;‘ 或 "dBASE IV;"這兩種寫(xiě)法。 也可使用 DATABASE 保留字指定外部數據庫。例如,以下示例指定相同的表: ... FROM Table IN "" [dBASE IV; DATABASE=C:\DBASE\DATA\SALES;]; ... FROM Table IN "C:\DBASE\DATA\SALES" "dBASE IV;" 注意為改進(jìn)性能并方便使用,請使用鏈接表而不要用 IN。
IN 子句示例 下列表顯示您如何使用 IN 子句來(lái)捕獲外部數據庫的數據。在每一示例之中,假設客戶(hù)表是保存在外部數據庫之中。 外部數據庫 SQL 語(yǔ)句 Microsoft® Jet 數據庫 SELECT CustomerID FROM Customers IN OtherDB.mdb WHERE CustomerID Like "A*"; dBASE III 或 IV. 捕獲數據由 一 dBASE III 表,以 "dBASE III;" 替代 "dBASE IV;"。 SELECT CustomerID FROM Customer IN "C:\DBASE\DATA\SALES" "dBASE IV;" WHERE CustomerID Like "A*"; dBASE III 或 IV 使用數據庫語(yǔ)法。 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 表捕獲數據,以 "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 使用數據庫語(yǔ)法. 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; 在工作表之中的一個(gè)命名范圍 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子句中查詢(xún)文本文件如何寫(xiě)鏈接字串,你可以參考: 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$]; |
說(shuō)明: c:\test.xls 是excel文件名 sheet1是要導入的工作表名 其實(shí),你要獲取鏈接字串還有一個(gè)方便的辦法,就是使用鏈接向導,先手工鏈接一個(gè)文件到你的數據庫中,然后執行以下代碼:
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 |
|