Insertion ou mise à jour avec conditions [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013
-
burolec
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013
-
Bonjour,

Je suis super débutant et j'aimerais vous poser une question à vous, les pros.

J'ai créé une base de données sous Access avec une seule table.

Dans cette table, il il a les colonnes ID, D1, F1, D2, F2, D3, F3... D52, F52.
D1 représente une date et F1 une autre date associée à D1. Certaines cellules sont remplies, d'autres non. Ce que j'aimerais, ce serait d'insérer deux dates dans les premiers D et F libres (si D1 et F1 sont libres, insérer dans D1 et F1, sinon si D2 et F2...)
J'ai essayé diverses requêtes sql, mais en vain (il faut dire que je n'ai aucun apprentissage, je cherche sur le net et j'essaye). Est-ce possible ? Et si oui, comment ? Merci d'avance.

5 réponses

Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Bonjour burolec,

Cette requête, une fois adaptée à votre table, permet de se positionner sur le premier enregistrement ou le couple D1-F1 est vide (null).


SELECT TOP 1 Table1.Réf, First(Table1.D1) AS PremierDeD1, First(Table1.F1) AS PremierDeF1
FROM Table1
GROUP BY Table1.Réf
HAVING (((First(Table1.D1)) Is Null) AND ((First(Table1.F1)) Is Null));


Cordialement
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

Bonjour, et merci de m'avoir répondu.

En fait, cette requête va se placer sur le premier couple D1-F1, quel que soit l'ID ? Du moins, après l'avoir essayé, et ce que vous avez dit, c'est ce que j'en conclus. Donc en gros ce code me donne le premier ID qui a ses D1-F1 disponibles.

Seulement je voudrais insérer des dates dans le premier couple D-F disponible sur un ID déterminé à l'avance. (D1-F1, ou D2-F2, etc).
Mais merci quand même. En attendant, je vais regarder ce que vous m'avez donné et essayer de l'adapter pour répondre à mes attentes. Ca va être coton, je le sens.
Jean_Jacques
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Soit, mais encore ?
Sur quel critère est sélectionné l'ID qui désigne l'enregistrement à mettre à jour ?

A+
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

Oh, je pensais mettre à la fin un where ID = id (access me demandera de rentrer une valeur pour id).
En fait je fais une recherche de disponibilité entre deux dates qu'access me demande (déjà fonctionnel). Access me donne les ID disponibles, et me fait même un compte des ID dispos. Et là, je voudrais pouvoir modifier les premiers D-F disponibles de certains de ces ID pour les mettre en indisponibilité. Je pourrais le faire en rentrant les dates directement dans la table, mais le but est d'entrer une fois les dates, d'entrer les ID, et de laisser faire sql.
Jean_Jacques
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Voilà une solution pour obtenir l'affichage d'un ID spécifique (NB : à condition que les autres conditions soient remplies).

SELECT TOP 1 Table1.Réf, Table1.ID, First(Table1.D1) AS PremierDeD1, First(Table1.F1) AS PremierDeF1
FROM Table1
GROUP BY Table1.Réf, Table1.ID
HAVING (((Table1.ID) Like [ ID ? ]) AND ((First(Table1.D1)) Is Null) AND ((First(Table1.F1)) Is Null));

Cordialement
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

Merci... mais je ne comprends pas bien. Ce code va m'afficher l'ID que je demande si le D1 et le F1 de cet ID sont null ?
Jean_Jacques
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Affirmatif !
Il s'arrêtera sur le premier enregistrement qui remplit simultanément les 3 conditions.
A savoir
ID = ID saisi
D : Date Vide
F : Date vide


ß
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

Ah d'accord ! Mais si je comprends bien, il s'arrêtera sur l'ID saisi qui a D1 et F1 vide. C'est pas encore tout à fait ce que je cherche, mais ça avance. Merci.