2009-07-23 14 views
0

Im en utilisant la base de données Access2003, avec 2 tables, et une seule requête, une macro pour afficher les fichiers, et une macro pour exporter les fichiers (délimités, non fixés), et un formulaire.Qu'est-ce qu'une solution ou formule pour exporter un champ de texte avec des espaces rembourrés dans Access 2003, dans un fichier txt

La table principale est construite comme suit: "Nom de l'employé"; type de données: texte, taille du champ: 22. "ID employé"; type de données: texte, taille du champ: 22. "RT #"; type de données: texte, taille du champ: 9. "Numéro A/C"; type de données: texte, taille du champ: 15. "Quantité"; type de données: nombre, taille de champ: décimal, Format: Standard, précision: 9, échelle: 2, décimales Places: 2. "Effective Day" Type de données: texte, taille du champ: 2. "Statut", type de données: texte, taille du champ: 255.

La table secondaire "Table active" est construite comme suit: "Nom de l'employé"; type de données: texte, taille du champ: 22. "ID employé"; type de données: texte, taille du champ: 22. "RT #"; type de données: texte, taille du champ: 9. "Numéro A/C"; type de données: texte, taille du champ: 15. "Montant $"; type de données: texte, taille du champ: 255. "Effective Day" Type de données: texte, taille du champ: 2. "Statut", type de données: texte, taille du champ: 255.

La requête est construite comme suit: "Nom de l'employé" "ID de l'employé" "RT #" "A/C Nombre" "Montant $: Format $ ([montant]," 000000,00 ")" "journée efficace" avec des critères "[S'il vous plaît entrer Day en vigueur]" "Etat" avec des critères "actifs"

Il y a 2 macros 1. Voir: Ouvrir la requête (ACH active par jour), forme ouverte (frm_Veiw_Active_Table) 2. Exporter: TransferText (type de transfert: Export Délimité; nom de la table: Table active)

Il y a un formulaire frm_Veiw_Active_Table

Il y a aussi un tableau avec des options: Ajouter & Modifier; Voir le jour Exporter jour sélectionné Quitter

Comment les fonctions Swithcboard sélectionnés: 1. Les utilisateurs d'ajouter des lignes ou des modifications des lignes 2. Les utilisateurs cliquez sur « Afficher jour sélectionné » et entrez le jour EG3 ( En arrière-plan, la macro de vue s'exécute et filtre les requêtes pour les personnes actives avec un jour effectif de 3 et les résultats en lecture seule sont affichés) 3. Les utilisateurs cliquent sur "Exporter le jour sélectionné" (En arrière-plan, la requête remplace la valeur dans "Table active", avec les résultats pour le jour d'efficacité choisi à l'étape 2. La macro d'exportation exporte ensuite ce résultat dans un fichier .txt sur le bureau)

Le fichier d'exportation a des longueurs variables pour tous les champs de texte de la table active, à l'exception du champ $ Montant qui exporte avec une quantité fixe de 9 caractères (tout montant est ajouté dans le tableau principal, est rembourré avec des 0 jusqu'à 9 caractères par la requête, il est donc exporté jusqu'à 9 caractères avec les 0 principaux).

Je dois définir une longueur fixe pour tous les autres champs de texte exportés, par ex. Le nom de l'employé doit toujours être de 22 caractères, et il doit être rempli avec des espaces vides pour atteindre 22 caractères si le nom de la personne est plus court que 22 caractères.

Est-ce que quelqu'un sait comment ajouter une formule à ma requête, pour remplir mes champs de texte avec des caractères invisibles, par ex. jusqu'à 22 pour le nom de l'employé, de sorte que lorsque le fichier est exporté, il a un nombre fixe de caractères (lettre et invisible)

Toute aide sera grandement appréciée.

Juste pour noter: j'ai essayé d'installer ma macro d'exportation en tant que type de transfert: longueur fixe; mais cette coupe mes deux dernières colums jour d'entrée en vigueur et le statut (ce sont mes 2 champs avec des critères ajoutés dans la requête)

Répondre

1

Pour pad ou tronquer une chaîne de 22 caractères:

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

Vous ajoutez 22 places à la fin, vous prenez les 22 caractères les plus à gauche de la chaîne que vous avez faite.

+0

Je ne comprends pas comment l'appliquer à mes champs Nom de l'employé et Numéro de compte bancaire, dans ma requête. Pouvez-vous conseiller s'il vous plaît. Et merci pour la réponse –

+0

Dans votre requête, à la place de la colonne qui indique 'Employee Name' mettez quelque chose comme 'EmployeeName: left ([Employee Name] & Space (22), 22)'. Vous devrez appeler la colonne quelque chose d'autre que «nom de l'employé» ou Access sera confus. Est ce que ça aide? – dsteele

+0

OMG !!! Ca a marché, merci beaucoup ... Tu es un génie. J'espère que vous avez une journée agréable –