0

2つのテーブルと1つのクエリ、ファイルを表示するためのマクロ、ファイルをエクスポートするためのマクロ(区切られた、固定されていない)、およびフォームを備えたAccess2003データベースを使用しています。

メイン テーブルは次のように作成されます: "Employee Name" ;データ型: テキスト、フィールド サイズ:22。"従業員 ID" ;データ型: テキスト ,フィールド サイズ:22. "RT #" ;データ タイプ: テキスト、フィールド サイズ:9。"A/C 番号" ;データ タイプ: テキスト、フィールド サイズ:15。"Amount" ;データ タイプ: 数値 ,フィールド サイズ:10 進数 , フォーマット:標準 ,精度:9 ,スケール:2 ,小数点以下の桁数:2. 「有効日」;データ型:テキスト,フィールドサイズ:2. 「ステータス」;データタイプ:テキスト,フィールドサイズ:255.

セカンダリ テーブル "Active Table" は次のように作成されます: "Employee Name" ;データ型: テキスト、フィールド サイズ:22。"従業員 ID" ;データ型: テキスト ,フィールド サイズ:22. "RT #" ;データ タイプ: テキスト、フィールド サイズ:9。"A/C 番号" ;データ タイプ: テキスト、フィールド サイズ:15。"Amount$" ;データ タイプ: テキスト ,フィールド サイズ:255. 「有効日」;データ型:テキスト,フィールドサイズ:2. 「ステータス」;データタイプ:テキスト,フィールドサイズ:255.

クエリは次のように作成されます。「従業員名」「従業員 ID」「RT #」「A/C 番号」「金額 $: フォーマット $([金額],"000000.00")」「有効日」と基準「[お願いします」発効日を入力してください]" "ステータス" 基準 "アクティブ"

2 つのマクロがあります。 1. ビュー: クエリを開く (日ごとのアクティブ ACH)、フォームを開く (frm_Veiw_Active_Table) 2. エクスポート: TransferText (転送タイプ: 区切り記号付きエクスポート; テーブル名: アクティブ テーブル)

1 つのフォーム frm_Veiw_Active_Table があります。

オプション付きの配電盤もあります。追加と編集。選択した日の表示 選択した日のエクスポート 終了

Swithcboard の機能: 1. ユーザーは行を追加するか行を編集します 2. ユーザーは [選択した日を表示] をクリックし、日を入力します eg3 (バックグラウンドで、ビュー マクロが実行され、有効な日を持つアクティブな人物のフィルターがクエリされます3 のうち、読み取り専用の結果が表示されます) 3. ユーザーは [選択した日をエクスポート] をクリックします (バックグラウンドで、クエリは [アクティブなテーブル] の値をステップ 2 で選択した有効日の結果に置き換えます。エクスポート マクロは、この結果をデスクトップ上の .txt ファイルにエクスポートします)。

エクスポート ファイルでは、アクティブ テーブルのすべてのテキスト フィールドの長さが異なります。ただし、9 文字の固定量でエクスポートされる Amount$ フィールドは例外です (メイン テーブルに追加された量に関係なく、9 文字までの 0 が埋め込まれます)。そのため、先頭に 0 を付けて最大 9 文字までエクスポートされます)。

他のすべてのエクスポートされたテキスト フィールドに固定長を設定する必要があります。たとえば、従業員名は常に 22 文字にする必要があり、個人名が 22 文字より短い場合は 22 文字になるように空白を埋め込む必要があります。

私のクエリに数式を追加する方法を知っている人はいますか?テキスト フィールドに非表示の文字 (従業員名の場合は最大 22 文字) を埋め込むことで、ファイルがエクスポートされたときに一定量の文字 (文字と非表示) が含まれるようにします。

どんな助けでも大歓迎です。

注: エクスポート マクロを転送タイプ: 固定長として設定しようとしました。しかし、これにより、最後の2つの列有効日とステータスが切り取られます(これらは、クエリに基準が追加された2つのフィールドです)

4

1 に答える 1

1

文字列を 22 文字にパディングまたは切り詰めるには、次のようにします。

myNewString = left(myString & space(22),22)

最後に 22 個のスペースを追加してから、作成した文字列の左端の 22 文字を取ります。

于 2009-07-23T15:59:26.957 に答える