1. 程式人生 > >Access匯入文字檔案的Schema.ini檔案格式

Access匯入文字檔案的Schema.ini檔案格式

 

Schema.ini格式如下(參考:MSDN主題 Schema.ini File):

Schema.ini用於提供文字資料中的記錄規格資訊。每個Schema.ini的條目用於指明表的5個特徵之一:

文字檔名
檔名有方括號括起來,例如如果要對Sample.txt使用Schema,那麼它的對應的Schema條目應該是

[Sample.txt]

檔案格式
指令如下:

Format=Value

Value可以取下面的值之一:

TabDelimited 用Tab分隔

CSVDelimited 用逗號分隔

FixedLength 固定長度

Delimited(C) 指定字元,其中C可以為除了雙引號(")外的任何字元,也可以為空

欄位名、欄位寬度和型別
格式為:Coln=欄位名 資料型別 [width 寬度]

欄位名可以是任意字元,如果欄位名包含空格,請使用雙引號括起來。

資料型別可以為:

Bit

Byte

Short(Integer)

Long

Currency

Single

Double(Float)

DateTime(Date DateFormat)

Text(Char)

Memo(LongChar)

其中DateFormat是日期的格式字串例如:Date YYYY-MM-DD

字符集
格式:CharacterSet=ANSI | OEM

格式只有兩種:ANSI和OEM

特殊資料型別轉換
特殊資料型別轉換一般使用的比較少,主要是自定義日期、貨幣等等的資料格式,一般不用理會。在此也不作詳細敘述。請自己檢視MSDN幫助:Schema.ini File

下面給出一個簡單的例子,假設有一個表Contacts.txt類似下面:

First NameLast NameHireDate

Nancy Davolio 10-22-91

Robert King 10-23-91

那麼Schema.ini個是類似下面的INI檔案(我加了註釋):

[Contacts.txt] ///需要匯入的文字檔名

ColNameHeader=True ///是否有資料頭

Format=FixedLength ///欄位固定長度

MaxScanRows=0 ///最多匯入行

CharacterSet=OEM ///字符集

Col1="First Name" Char Width 10 ///第一列格式

Col2="Last Name" Char Width 9 ///第二列格式

Col3="HireDate" Date Width 8 ///第三列格式

////依此類推

我們可以根據資料自動建立這個Schema.ini檔案!

注意,Schema.ini必須和需要匯入的文字檔案在同一目錄!!!如果不在同一個目錄,必須指定Schema.ini的全路徑!

此後,我們就可以利用下面的語句來匯入資料了:

DoCmd.TransferText acImportFixed, , "Contacts", "C:Documents.txt"

或者

DoCmd.TransferText acImportFixed, "C:Documents.ini", "Contacts", "C:Documents.txt"

下面給出TransferText的語法(摘自Access幫助):

DoCmd.TransferText [TransferType][, SpecificationName], TableName, FileName[, HasFieldNames][, HtmlTableName][, CodePage]

TransferType 可選 AcTextTransferType。

AcTextTransferType 可以是下列 AcTextTransferType 常量之一:

acExportDelim

acExportFixed

acExportHTML

acExportMerge

acImportDelim 預設

acImportFixed

acImportHTML

acLinkDelim

acLinkFixed

acLinkHTML

如果將該引數留空,則採用預設常量 (acImportDelim)。

SpecificationName 可選 Variant 型。字串表示式,表示在當前資料庫中建立並儲存的匯入或匯出規格的名稱。對於固定長度的文字檔案, 必須指定引數或使用 schema.ini 檔案,該檔案還必須儲存在匯入、連結或匯出的文字檔案的同一個資料夾中。若要建立一個方案檔案, 可使用文字匯入/匯出嚮導建立此檔案。對於分隔的文字檔案和 Microsoft Word 郵件合併資料檔案,可以將該引數留空,以便選擇預設的匯入/匯出規格。

TableName 可選 Variant 型。字串表示式,表示要向其匯入文字資料、從中匯出文字資料或連結文字資料的 Microsoft Access 表的名稱,或者要將其結果匯出到文字檔案的 Microsoft Access 查詢的名稱。

FileName 可選 Variant 型。字串表示式,表示要從中匯入、匯出到或連結到的文字檔案的完整名稱(包括路徑)。

HasFieldNames 可選 Variant 型。使用 True (-1) 可以在匯入、匯出或連結時,使用文字檔案中的第一行作為欄位名。使用 False (0) 可以將文字檔案中的第一行看成普通資料。如果將該引數留空,則採用預設值 (False)。該引數將被 Microsoft Word 郵件合併資料檔案忽略,這些檔案的第一行中必須包含欄位名。

HTMLTableNam 可選 Variant 型。字串表示式,表示要匯入或連結的 HTML 檔案中的表或列表的名稱。除非 transfertype 引數設為 acImportHTML 或 acLinkHTML,否則該引數將被忽略。如果將該引數留空