1

char(2) であるいくつかのフィールドを持つテーブルがあります。フィールドの長さが 1 文字のみの場合、先頭に 0 (ゼロ) を付ける必要があるフィールドもあります。左パディングを実現するために、いくつかの異なるフォーマット方法を試したクエリを作成しました。これらの試行は、クエリ結果を見ると問題なく機能しますが、エクスポート時に作成されたテキスト ファイルを調べると、問題のフィールドに先頭の 0 が含まれていません。

クエリで使用した2つの方法を次に示します

`FORMAT(tblMHOutcome.Dayscom, "00") AS Dayscom`
`IIF(LEN(tblMHOutcome.Daysatte)=1, "0"&tblMHOutcome.Daysatte`

以下は、フィールドがパディングされたエクスポート ウィンドウのビューを示す画像です。

エクスポート ウィンドウの埋め込みフィールド

以下は、フィールド パディングなしの結果のテキスト ファイルのイメージです。

パッドなしのエクスポート後

フォーマットされたクエリをエクスポートするためのアクセスを取得する方法について何か提案はありますか?

更新: 完全なクエリを追加

`SELECT tblMHOutcome.ContractorID, tblMHOutcome.SiteID, tblMHOutcome.SSN,     
tblMHOutcome.ClientID, tblMHOutcome.Purpeval, tblMHOutcome.Evaldate, 
tblMHOutcome.StaffID, tblMHOutcome.Initevada, tblMHOutcome.Pincosrc,     
tblMHOutcome.Disincom, tblMHOutcome.Prognosis, tblMHOutcome.Depcrims, 
tblMHOutcome.Admitype, FORMAT(tblMHOutcome.Dayscom, "00") AS Dayscom, 
FORMAT(tblMHOutcome.Dayswork, "00") AS Dayswork, tblMHOutcome.Incopay, 
tblMHOutcome.Incogov, tblMHOutcome.Incother, tblMHOutcome.GAF, 
IIF(LEN(tblMHOutcome.Daysavai)=1, "0"&tblMHOutcome.Daysavai, tblMHOutcome.Daysavai) AS 
Daysavai, IIF(LEN(tblMHOutcome.Daysatte)=1, "0"&tblMHOutcome.Daysatte, 
tblMHOutcome.Daysatte) AS Daysatte, IIF(LEN(tblMHOutcome.CGAS)=1, 
"0"&tblMHOutcome.CGAS, tblMHOutcome.CGAS) AS CGAS, tblMHOutcome.DJJComit, 
tblMHOutcome.Riskfact, tblMHOutcome.Residstat, tblMHOutcome.Marital, tblMHOutcome.Empl, 
tblMHOutcome.Residcont, tblMHOutcome.Grade, tblMHOutcome.Rx, tblMHOutcome.Develop, 
tblMHOutcome.Physical, tblMHOutcome.Ambulat, tblMHOutcome.Visual, tblMHOutcome.Hearing, 
tblMHOutcome.English, tblMHOutcome.ADLFC, tblMHOutcome.Provinfo, tblMHOutcome.Zip, 
tblMHOutcome.Tstat, tblMHOutcome.Famsize, tblMHOutcome.MHProb, tblMHOutcome.Faminc, 
tblMHOutcome.Referral, tblMHOutcome.Provid, tblMHOutcome.MHDiagnosis, 
tblMHOutcome.SADiagnosis, tblMHOutcome.Bakeract, tblMHOutcome.Rxidp, 
tblMHOutcome.Rxpap, tblMHOutcome.Contnum1, tblMHOutcome.Contnum2, 
tblMHOutcome.Contnum3, tblMHOutcome.Vetstatus, tblMHOutcome.Social, 
tblMHOutcome.School, tblMHOutcome.Arrest
FROM tblMHOutcome
WHERE (((tblMHOutcome.DeleteRecord)=False))
ORDER BY tblMHOutcome.Evaldate;`

そしてVBAコード:

`DoCmd.TransferText acExportFixed, "MHOutcomeExport", "qryMHOutcomeExport", "Exports\MHOutcome.txt", False`
4

1 に答える 1

1

あなたが使用することができます:

SELECT Format(ANumber,"00") AS Expr1 
INTO [Text;FMT=Fixed;DATABASE=Z:\docs].[exp.txt] 
FROM table1;

schema.iniも役に立ちます。たとえば、TransferText エラーの処理

または、これにより 2 桁の番号が作成されます。

SELECT Right("00" & Anumber,2)
FROM Table1;

DoCmd.TransferText acExportFixed, "expspec", "Query3", "z:\docs\exp.txt"

再コメント

SELECT IIf(Not IsNull(ANumber),Right("00" & Anumber,2), ANumber)
FROM Table1;
于 2013-02-15T20:09:50.127 に答える