Comment préciser une clé primaire dans une requete creation

Le
Michel Thibault
Je crée une nouvelle table via une requete creation mais j'ai besoin d'avoir
une clé primaire sans intervention humaine pour utiliser la table dans une
requete enseuite.

Comment faire ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Dom
Le #6354601
Bonsoir,

Juste un peu de politesse ... Hein :-))


"Michel Thibault" le message de news:
Je crée une nouvelle table via une requete creation mais j'ai besoin
d'avoir
une clé primaire sans intervention humaine pour utiliser la table dans une
requete enseuite.

Comment faire ?


Eric
Le #6354151
Bonjour *aussi*

Dans le sql de création de la table.
Un exemple:
Create Table Client
(
NumClient COUNTER Constraint PK_NumClient Primary Key,
NomClient Text(50),
Adresse Text(50),
CP Text(5),
Ville Text(30)
);

Je crée une nouvelle table via une requete creation mais j'ai besoin d'avoir
une clé primaire sans intervention humaine pour utiliser la table dans une
requete enseuite.

Comment faire ?


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Eric
Le #6354111
Et si la table a déjà été créée :
En se basant sur l'exemple précédent (sans la définition de la clé
primaire), la syntaxe suivant définit la clé primaire sur le champ
NumClient de la table Client :

ALTER TABLE CLIENT ADD CONSTRAINT PK_NumClient Primary Key(NumClient);


Bonjour *aussi*

Dans le sql de création de la table.
Un exemple:
Create Table Client
(
NumClient COUNTER Constraint PK_NumClient Primary Key,
NomClient Text(50),
Adresse Text(50),
CP Text(5),
Ville Text(30)
);

Je crée une nouvelle table via une requete creation mais j'ai besoin
d'avoir une clé primaire sans intervention humaine pour utiliser la
table dans une requete enseuite.

Comment faire ?




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Michel Thibault
Le #6353951
Eric,

Merci de vos conseils précieux.

Désolé d'avoir oublié les formules de politesses. On était samedi, j'en
avais marre, j'avais Madame qui réclamait que je vienne diner, j'ai zappé le
savoir-vivre et je m'en excuse auprès de chacun, y compris Dom qui, à défaut
de répondre à ma question, m'a rappelé à mes devoirs.

Sans rancune ?
Eric
Le #6353941
Bonjour Michel,

Pas de problème.
L'essentiel est que la réponse convienne.

Eric,

Merci de vos conseils précieux.

Désolé d'avoir oublié les formules de politesses.
...
Sans rancune ?


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Michel Thibault
Le #6353921
BONJOUR,

Je n'ai pas réussi à faire fonctionner le process proposé par Eric, Access
m'affiche qu'il manque un opérateur ...

Je crée une table via une requête basée sur deux tables à l'origine, dont
j'extrait certaines données. J'aimerais que, dans la table 3inutiles" ainsi
créée, le champ Code_LP soit une clé primaire.

Je vous livre l'instruction sql actuelle. Si vous m'expliquiez où poser
l'instruction Constraint, ce serait super sympa.

SELECT LoyerProduits.Code_LP, LoyerProduits.Ct_LP, LoyerProduits.Avt_LP,
LoyerProduits.DateLoyer_LP, Loyers.Date_loyers INTO [Inutiles]
FROM LoyerProduits LEFT JOIN Loyers ON LoyerProduits.DateLoyer_LP =
Loyers.Date_loyers
WHERE (((Loyers.Date_loyers) Is Null));

Voilà, merci à tous ceux qui s'interesseront à mon cas.

Michel


Je crée une nouvelle table via une requete creation mais j'ai besoin d'avoir
une clé primaire sans intervention humaine pour utiliser la table dans une
requete enseuite.

Comment faire ?


Eric
Le #6353911
Bonjour,

Tu crées ta nouvelle table par un SELECT INTO, et je ne crois pas que
par cette méthode tu puisses créer ta clé primaire, car ce n'est pas du
SQL de définition de données. Je pense que l'exécution de ta requête
Création Table des inutiles se fait via une procédure et non à partir de
l'onglet des requêtes par clic sur le point d'exclamation.
Je te propose donc la solution suivante:

Soit RQInutiles la requête dont tu as donné le SQL
et la procédure suivante à copier dans un module:
Sub zz()
Dim strSQL As String
DoCmd.SetWarnings False ' pas d'avertissment d'exécution
' Creation de la table Inutiles par SELECT INTO
DoCmd.OpenQuery "RQInutiles"
'Définition du SQL création clé primaire, sur une seule ligne
strSQL = "ALTER TABLE Inutiles ADD CONSTRAINT PK_Code_LP Primary
Key(Code_LP); "
'Exécution et création de la clé primaire
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True ' Rétablissement des avertissements
' Rafraichissement de la fenêtre de la Bd|Tables-Facultatif
RefreshDatabaseWindow
End Sub

et sur l'évènement clic d'un bouton de commande :
Private Sub Commande0_Click()
Call zz
End Sub


BONJOUR,

Je n'ai pas réussi à faire fonctionner le process proposé par Eric, Access
m'affiche qu'il manque un opérateur ...

Je crée une table via une requête basée sur deux tables à l'origine, dont
j'extrait certaines données. J'aimerais que, dans la table 3inutiles" ainsi
créée, le champ Code_LP soit une clé primaire.

Je vous livre l'instruction sql actuelle. Si vous m'expliquiez où poser
l'instruction Constraint, ce serait super sympa.

SELECT LoyerProduits.Code_LP, LoyerProduits.Ct_LP, LoyerProduits.Avt_LP,
LoyerProduits.DateLoyer_LP, Loyers.Date_loyers INTO [Inutiles]
FROM LoyerProduits LEFT JOIN Loyers ON LoyerProduits.DateLoyer_LP =
Loyers.Date_loyers
WHERE (((Loyers.Date_loyers) Is Null));

Voilà, merci à tous ceux qui s'interesseront à mon cas.

Michel



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Michel Thibault
Le #6353891
Eric,

T'es génial, tu as probablement sauvé ma fin d'après-midi (du coup, je vais
pouvoir aller faire une séance de manoeuvres sur parking - en toute sécurité,
je précise - avec ma fille qui passe son permis cette semaine)

Merci beaucoup

Michel


Bonjour,

Tu crées ta nouvelle table par un SELECT INTO, et je ne crois pas que
par cette méthode tu puisses créer ta clé primaire, car ce n'est pas du
SQL de définition de données. Je pense que l'exécution de ta requête
Création Table des inutiles se fait via une procédure et non à partir de
l'onglet des requêtes par clic sur le point d'exclamation.
Je te propose donc la solution suivante:

Soit RQInutiles la requête dont tu as donné le SQL
et la procédure suivante à copier dans un module:
Sub zz()
Dim strSQL As String
DoCmd.SetWarnings False ' pas d'avertissment d'exécution
' Creation de la table Inutiles par SELECT INTO
DoCmd.OpenQuery "RQInutiles"
'Définition du SQL création clé primaire, sur une seule ligne
strSQL = "ALTER TABLE Inutiles ADD CONSTRAINT PK_Code_LP Primary
Key(Code_LP); "
'Exécution et création de la clé primaire
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True ' Rétablissement des avertissements
' Rafraichissement de la fenêtre de la Bd|Tables-Facultatif
RefreshDatabaseWindow
End Sub

et sur l'évènement clic d'un bouton de commande :
Private Sub Commande0_Click()
Call zz
End Sub


BONJOUR,

Je n'ai pas réussi à faire fonctionner le process proposé par Eric, Access
m'affiche qu'il manque un opérateur ...

Je crée une table via une requête basée sur deux tables à l'origine, dont
j'extrait certaines données. J'aimerais que, dans la table 3inutiles" ainsi
créée, le champ Code_LP soit une clé primaire.

Je vous livre l'instruction sql actuelle. Si vous m'expliquiez où poser
l'instruction Constraint, ce serait super sympa.

SELECT LoyerProduits.Code_LP, LoyerProduits.Ct_LP, LoyerProduits.Avt_LP,
LoyerProduits.DateLoyer_LP, Loyers.Date_loyers INTO [Inutiles]
FROM LoyerProduits LEFT JOIN Loyers ON LoyerProduits.DateLoyer_LP =
Loyers.Date_loyers
WHERE (((Loyers.Date_loyers) Is Null));

Voilà, merci à tous ceux qui s'interesseront à mon cas.

Michel



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Eric
Le #6353881
re,

Eric,

T'es génial, tu as probablement sauvé ma fin d'après-midi (du coup, je vais
pouvoir aller faire une séance de manoeuvres sur parking - en toute sécurité,
je précise - avec ma fille qui passe son permis cette semaine)

Merci beaucoup



De rien, c'est le but du newsgroup
Content pour toi que le problème soit résolu.
N'oublies surtout pas les clés (de voiture) ;-)
Merci pour le retour.

Michel




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Pierre CFI
Le #6353851
le coup du permis, :o)) bon pretexte pour boire un coup avec les copines de
sa fille

--
Pierre CFI
"Eric"
re,

Eric,

T'es génial, tu as probablement sauvé ma fin d'après-midi (du coup, je
vais pouvoir aller faire une séance de manoeuvres sur parking - en toute
sécurité, je précise - avec ma fille qui passe son permis cette semaine)

Merci beaucoup



De rien, c'est le but du newsgroup
Content pour toi que le problème soit résolu.
N'oublies surtout pas les clés (de voiture) ;-)
Merci pour le retour.

Michel




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Publicité
Poster une réponse
Anonyme