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 -
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.
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:
- Insertion ou mise à jour avec conditions
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
- Mise à jour libre office - Accueil - Bureautique
5 réponses
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
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
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.
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.
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.
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.
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
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
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question