Requete mois

972bruno Messages postés 3 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 31 août 2010 - 30 août 2010 à 18:02
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 31 août 2010 à 15:24
Comment traduire en mois cet enregistrement : Du=03 Au=05 je dois créer un enregistrement avec 3 données de type oui/non soit Janvier,Février et Mars
Merci pour votre aide

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 août 2010 à 20:16
Pas bonjour non plus.

Avant de pouvoir te renseigner, il faudrait peut-être qu'on sache ce qu'il y a dans ta table, quels noms de champ, quel type de donnée ...

Est-ce que ta question porte sur la requète, comme énoncé dans le titre, ou bien poses-tu des questions sur la structure de ta table ?

Au final, quel est l'utilisation de ta table ? Chaque fiche comportera quoi ? pour faire quoi ?
Si tu dois simplement attribuer un numéro de mois à chaque fiche, déclare un entier, ça suffira.
Mais auras-tu besoin aussi des jours ? de l'année ?
Un champ Date serait plus indiqué.

Mais tout dépend ce que tu veux faire ...
On n'est pas au dessus de ton épaule : donne le maximum de détails.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
972bruno Messages postés 3 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 31 août 2010
30 août 2010 à 21:11
Bonjour,
il s'agit bien d'une requête avec une table en lecture,TableIn, avec :
NoContrat (num)
Du (mois) Ex. 3
Au (mois) Ex. 5
Je désire créer une table,TableOut, avec
NoContrat (num)
Janvier (Oui/Non)
Février (Oui/Non)
Mars (Oui/Non)
Avril (Oui/Non)
Mai (Oui/Non)
Jusqu'à Décembre
Où Mars=Vrai ainsi que Avril et Mai
Tableout sera imprimé avec coloriage des colonnes Vrai.
merci pour ta patience.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2010 à 00:31
Ok, donc tu veux convertir un chiffre en une série d'états logiques.

Perso, je partirai sur une requète calculée à partir de deux boucles imbriquées afin de couvrir toutes les combinaisons 01-01 jusqu'à 12-12 :
    For Mois1 = 1 To 12
        For Mois2 = 1 To 12
            ' ici, construction requète
        Next Mois2
    Next Mois1


Dans la partie construction requète :
Une syntaxe de requète d'insertion peut être faite de 2 manières :
    Insert Into maTable
        (Liste des noms des champs à renseigner)
    Values (autant de valeurs, une pour chaque champ)
(A revérifier, il est tard)
et celle-ci, plus adaptée à ce que tu veux faire.
Structure de base :
    Insert Into maTableOut
       Set [NoContrat] = maTableIn.[NoContrat],
           [Janvier] = Valeur2,
           [Février] = Valeur3,
           ... ,
           [Décembre] = Valeur12
     From maTableIn
    Where maTableIn.[Du (mois)] = Mois1
      And maTableIn.[Au (mois)] = Mois2

Pour la construction de la requète, c'est un jeu de concaténation de chaine, dans laquelle il faudra remplacer ValeurX par True ou False, exemple
Prépa tableau avec nom des mois
    aMois(1) "[Janvier]": aMois(2) "[Février]" ...
puis
    sSql = "Insert Into maTableOut Set "
    sSql sSql & "[NoContrat] maTableIn.[NoContrat],"
    For r = 1 To 12
        maVar = "False"  ' par défaut
        If r < Mois1 Or r > Mois2 Then
            sSql sSql & aMois(r) & " False,"
        Else
            sSql sSql & aMois(r) & " True,"
        End If
    Next r
    ' Supprime dernière virgule
    sSql = Left$(sSql, Len(sSql) - 1)
    ' et ajoute le reste
    sSql = sSql & " From maTableIn "
    sSql sSql & "Where maTableIn.[Du (mois)] " & CStr(Mois1)
    sSql sSql & "  And maTableIn.[Au (mois)] " & Cstr(Mois2)

C'est l'idée. A toi d'approfondir.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
972bruno Messages postés 3 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 31 août 2010
31 août 2010 à 13:50
Bonjour,
merci pour ta procédure. N'ayant jamais utilisé VB c'est l'occasion de plonger...
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2010 à 15:24
De rien.
Bien sûr, après la construction, il faudra soumettre ta requète avant de reboucler pour un fabvriquer une nouvelle.
Exemple :
    Dim lRetour As Long
    maConnexionADODB.Execute sSql, lRetour
    Debug.Print "Du "; Mois1; " Au "; Mois2; " : "; lRetour ; " fiches générées."
0
Rejoignez-nous