Forcer un type de données dans MS Access faire des requêtes sur les tables
J'ai une requête dans MS Access qui crée un tableau à partir de deux sous-requêtes. Pour deux des colonnes en cours de création, je suis diviser une colonne de la première sous-requête dans une colonne à partir de la deuxième sous-requête.
Le type de données de la première colonne est double; le type de données de la deuxième colonne est décimal, avec échelle de 2, mais je veux la deuxième colonne à un double.
Est-il un moyen de forcer le type de données lors de la création d'un tableau par le biais d'un faire-Accès à la table de la requête?
- Vous pouvez poster l'instruction SQL, s'il vous plaît? L'original de la déclaration va affecter la façon dont nous répondons.
Vous devez vous connecter pour publier un commentaire.
Une façon de le faire est de créer explicitement la table avant de mettre n'importe quoi dedans.
Votre relevé est sans doute comme cela:
Mais vous pouvez également le faire:
De cette façon, vous avez un contrôle total sur les types de colonne. Vous pouvez toujours supprimer la table plus tard si vous avez besoin de recréer.
Vous pouvez utiliser le casting de
FLOAT
fonctionCDBL()
mais, assez curieusement, l'Accès au Moteur de Base de données ne peut pas gérer laNULL
valeur, donc vous devez gérer vous-même par exemple,...mais vous allez avoir besoin de
ALTER TABLE
pour ajouter vos clés, contraintes, etc. Mieux simplementCREATE TABLE
d'abord, puis utiliserINSERT INTO..SELECT
pour la remplir.Vous pouvez utiliser CDbl autour des colonnes.
Un moyen facile de faire cela est de créer une table vide avec les bons types de champ puis à Ajouter À la requête et l'Accès sera automatiquement convertir les données dans le champ de destination.
J'ai eu une situation similaire, mais j'ai eu une requête création de table de la création d'un champ de type de données NUMÉRIQUE que je voulais être à court texte.
Ce que j'ai fait (et j'ai eu l'idée de la Pile) est de créer la table avec le domaine en question dans le Texte Court, et en même temps, construire une requête suppression pour nettoyer les dossiers. Je pense que c'est drôle qu'une requête de SUPPRESSION de l'accès n'est pas de supprimer la table, juste les enregistrements en elle - je suppose que vous devez utiliser une TABLE de fonction pour que, pour purger une table...
Ensuite, j'ai converti ma requête création de table pour une requête AJOUT, que je n'avais jamais fait avant... et j'ai juste ajouté de l'exécution de la requête de SUPPRESSION de mon processus.
Merci, de Débordement de Pile !
Steve
- Je ajouter un '& """pour le domaine je veux m'assurer que sont stockés en tant que texte, et un '*1 ' (comme en multipliant la quantité par 1) pour les champs je veux stocker numériques.
Semble faire l'affaire.