Insertion ou mise à jour avec conditions

Résolu
burolec Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
burolec Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

5 réponses

Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
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
0
burolec Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
Soit, mais encore ?
Sur quel critère est sélectionné l'ID qui désigne l'enregistrement à mettre à jour ?

A+
0
burolec Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
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
0
burolec Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
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


ß
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
burolec Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0