Bonjour à Tous,
Résumé de la situation :
Dans un précédent fil, j'ai sollicité le forum pour m'aider à réaliser un code qui permettait de créer une table d'indices stats qui est une extraction d'une table générale "INSEE".
Le code consiste à opérer un choix des indices composants l'extraction qui s'effectue via une table "Nomenclature" : catalogue des toutes les indices composants la table "INSSE" ;
- de concatener les "IdBank" (Id des indices) dont le champ "Choix" de la table "Nomenclature" est égal à 1 (indices retenus).
la concaténation s'opère dans le code sur la variable Choix1X comme suit :
Choix1X = Choix1X & "[" & res.Fields(0).Value & "], "
- de rédiger le corps de la requête en vue la création de la nouvelle table et
- créer l'extraction
Modification du code recherchée :
Tous les indices ne sont pas définitifs lors de leur parution.
Pour signaler les indices provisoires, la table "Nomenclature" contient le champ "DélaisMaj" portant la mention "prov" et vide sinon.
L'extraction doit être augmentée des champs portant la mention "PROV" et dont le nom de champ se compose de l'"IdBank" et terminé par la lettre "Q" (IdBankQ).
Dans ce cas, la variable de concaténation s'écrit :
Choix1X = Choix1X & "[" & res.Fields(0).Value & "], " & "[" & res.Fields(0).Value & "Q], "
Ci-dessous le code complet qui stope à la ligne :
If Nomenclature.DélaisMaj.Value = "PROV" Then
Par avance merci à Tous de votre colaboration
Thierry
Bd dans le lien : http://www.developpez.net/forums/d11...tionnes-table/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Sub xutil()
Dim Choix1X As String 'recoit la concaténation des indices choisis
Dim res As Recordset
Dim SQL As String
Dim QRY As String 'rédaction de la requête complète finale
Dim NTA As String 'Input box
'Selectionne et concatène les 1X choisis
SQL = "SELECT Nomenclature.IdBANK FROM Nomenclature WHERE (((Nomenclature.Choix)=1));"
'Concatene les différents enregistrement
Set res = CurrentDb.OpenRecordset(SQL)
While Not res.EOF
If Nomenclature.DélaisMaj.Value = "PROV" Then
Choix1X = Choix1X & "[" & res.Fields(0).Value & "], " & "[" & res.Fields(0).Value & "Q], "
Else
Choix1X = Choix1X & "[" & res.Fields(0).Value & "], "
End If
res.MoveNext
Wend
'Enleve la dernière ","
Choix1X = Left(Choix1X, Len(Choix1X) - 2)
'rédaction de la requête complète finale à destination d'une nouvelle table Test
NTA = InputBox("Saisie du nom de la table", "Création Table")
If NTA <> "" Then
QRY = "SELECT AnnéeMois, " & Choix1X & " INTO " & NTA & " FROM INSEE;"
End If
'Exécution de la requête
DoCmd.RunSQL QRY
'libere la mémoire
Set res = Nothing
End Sub |
Partager