VBA et SQL
Résolu
Mairequimby
-
Mairequimby Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Mairequimby Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai du code SQL dans ma macro Excel. Comment faire pour faire afficher les informations des tables en GRAS dans mon classeur excel qui ont une même fin (Ici C'est "DESCRIPTION"). Les 4 dernières lignes de ce message en GRAS ne fonctionne pas.
Merci de donner un p'tit coup de pouce à un novice:-)
Set rstDetails = dbs.OpenRecordset("SELECT FT_HORAIRE_DETAIL_TB.DATE_JOUR, FI_UNITE_ADMINIST_TB.SERVICECODE, " _
& "FI_SERVICE_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.UNITEADMCODE, FI_UNITE_ADMINIST_TB.DESCR_ABREGE, " _
& "FT_HORAIRE_DETAIL_TB.ASSIGNATION_CODE, FT_ASSIGNATION_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.SEQUENCE, " _
& "FP_EMPLOYE_TB.NOM, FP_EMPLOYE_TB.PRENOM, FP_TITRE_EMPLOI_TB.TEMP_CODE, FP_TITRE_EMPLOI_TB.DESCRIPTION, " _
& "FT_HORAIRE_DETAIL_TB.QUART_CODE, FT_HORAIRE_DETAIL_TB.HR_DEBUT, FT_HORAIRE_DETAIL_TB.HR_FIN, FT_CODE_PAIE_TB.CODE, " _
& "FT_CODE_PAIE_TB.DESCRIPTION, FT_HORAIRE_JOUR_COMMENTAIRE_TB.COMMENTAIRE, FT_HORAIRE_DETAIL_TB.CONGE " _
& "FROM ((((((FT_HORAIRE_DETAIL_TB LEFT JOIN FI_UNITE_ADMINIST_TB ON (FT_HORAIRE_DETAIL_TB.CLIENTCODE = FI_UNITE_ADMINIST_TB.CLIENTCODE) " _
& "AND (FT_HORAIRE_DETAIL_TB.UNITEADMCODE = FI_UNITE_ADMINIST_TB.UNITEADMCODE)) INNER JOIN FT_CODE_PAIE_TB ON FT_HORAIRE_DETAIL_TB.CODE_PAIE = FT_CODE_PAIE_TB.CODE) " _
& "LEFT JOIN FT_HORAIRE_JOUR_COMMENTAIRE_TB ON (FT_HORAIRE_DETAIL_TB.DATE_JOUR = FT_HORAIRE_JOUR_COMMENTAIRE_TB.DATE_JOUR) " _
& "AND (FT_HORAIRE_DETAIL_TB.SEQUENCE = FT_HORAIRE_JOUR_COMMENTAIRE_TB.SEQUENCE)) LEFT JOIN FP_EMPLOYE_TB ON FT_HORAIRE_DETAIL_TB.SEQUENCE = FP_EMPLOYE_TB.MATRI) " _
& "INNER JOIN FP_TITRE_EMPLOI_TB ON FT_HORAIRE_DETAIL_TB.TEMP_CODE_BASE = FP_TITRE_EMPLOI_TB.TEMP_CODE) " _
& "LEFT JOIN FI_SERVICE_TB ON FI_UNITE_ADMINIST_TB.SERVICECODE = FI_SERVICE_TB.SERVICECODE) " _
& "LEFT JOIN FT_ASSIGNATION_TB ON FT_HORAIRE_DETAIL_TB.ASSIGNATION_CODE = FT_ASSIGNATION_TB.ASSIGNATION_CODE " _
& "GROUP BY FT_HORAIRE_DETAIL_TB.DATE_JOUR, FI_UNITE_ADMINIST_TB.SERVICECODE, FI_SERVICE_TB.description, FT_HORAIRE_DETAIL_TB.UNITEADMCODE, " _
& "FI_UNITE_ADMINIST_TB.DESCR_ABREGE, FT_HORAIRE_DETAIL_TB.ASSIGNATION_CODE, FT_ASSIGNATION_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.SEQUENCE, " _
& "FP_EMPLOYE_TB.NOM, FP_EMPLOYE_TB.PRENOM, FP_TITRE_EMPLOI_TB.TEMP_CODE, FP_TITRE_EMPLOI_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.QUART_CODE, " _
& "FT_HORAIRE_DETAIL_TB.HR_DEBUT, FT_HORAIRE_DETAIL_TB.HR_FIN, FT_CODE_PAIE_TB.CODE, FT_CODE_PAIE_TB.DESCRIPTION, " _
& "FT_HORAIRE_JOUR_COMMENTAIRE_TB.COMMENTAIRE, FT_HORAIRE_DETAIL_TB.CONGE " _
& "HAVING (((FT_HORAIRE_DETAIL_TB.DATE_JOUR) Between #11/2/2009# And #11/15/2009#) AND " _
& "((FT_HORAIRE_DETAIL_TB.SEQUENCE)=" & sequence & ")) " _
& "ORDER BY FT_HORAIRE_DETAIL_TB.DATE_JOUR, FP_EMPLOYE_TB.NOM, FP_EMPLOYE_TB.PRENOM, FT_HORAIRE_DETAIL_TB.HR_DEBUT;")
Do While Not rstDetails.EOF And Not rstDetails.BOF
If Not rstDetails.EOF Or Not rstDetails.BOF Then
Worksheets(ActiveSheet.Name).Range("C" & i + 2).Value = Trim(rstDetails!prenom) & " " & Trim(rstDetails!Nom)
Worksheets(ActiveSheet.Name).Range("B" & i + 2).Value = rstDetails!sequence
Worksheets(ActiveSheet.Name).Range("A" & i + 2).Value = rstDetails!DATE_JOUR
Worksheets(ActiveSheet.Name).Range("D" & i + 2).Value = rstDetails!serviceCode
Worksheets(ActiveSheet.Name).Range("E" & i + 2).Value = rstDetails!FI_SERVICE_TB.DESCRIPTION
Worksheets(ActiveSheet.Name).Range("F" & i + 2).Value = rstDetails!FT_ASSIGNATION_TB.DESCRIPTION
Worksheets(ActiveSheet.Name).Range("G" & i + 2).Value = rstDetails!FP_TITRE_EMPLOI_TB.DESCRIPTION
Worksheets(ActiveSheet.Name).Range("H" & i + 2).Value = rstDetails!FT_CODE_PAIE_TB.DESCRIPTION
J'ai du code SQL dans ma macro Excel. Comment faire pour faire afficher les informations des tables en GRAS dans mon classeur excel qui ont une même fin (Ici C'est "DESCRIPTION"). Les 4 dernières lignes de ce message en GRAS ne fonctionne pas.
Merci de donner un p'tit coup de pouce à un novice:-)
Set rstDetails = dbs.OpenRecordset("SELECT FT_HORAIRE_DETAIL_TB.DATE_JOUR, FI_UNITE_ADMINIST_TB.SERVICECODE, " _
& "FI_SERVICE_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.UNITEADMCODE, FI_UNITE_ADMINIST_TB.DESCR_ABREGE, " _
& "FT_HORAIRE_DETAIL_TB.ASSIGNATION_CODE, FT_ASSIGNATION_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.SEQUENCE, " _
& "FP_EMPLOYE_TB.NOM, FP_EMPLOYE_TB.PRENOM, FP_TITRE_EMPLOI_TB.TEMP_CODE, FP_TITRE_EMPLOI_TB.DESCRIPTION, " _
& "FT_HORAIRE_DETAIL_TB.QUART_CODE, FT_HORAIRE_DETAIL_TB.HR_DEBUT, FT_HORAIRE_DETAIL_TB.HR_FIN, FT_CODE_PAIE_TB.CODE, " _
& "FT_CODE_PAIE_TB.DESCRIPTION, FT_HORAIRE_JOUR_COMMENTAIRE_TB.COMMENTAIRE, FT_HORAIRE_DETAIL_TB.CONGE " _
& "FROM ((((((FT_HORAIRE_DETAIL_TB LEFT JOIN FI_UNITE_ADMINIST_TB ON (FT_HORAIRE_DETAIL_TB.CLIENTCODE = FI_UNITE_ADMINIST_TB.CLIENTCODE) " _
& "AND (FT_HORAIRE_DETAIL_TB.UNITEADMCODE = FI_UNITE_ADMINIST_TB.UNITEADMCODE)) INNER JOIN FT_CODE_PAIE_TB ON FT_HORAIRE_DETAIL_TB.CODE_PAIE = FT_CODE_PAIE_TB.CODE) " _
& "LEFT JOIN FT_HORAIRE_JOUR_COMMENTAIRE_TB ON (FT_HORAIRE_DETAIL_TB.DATE_JOUR = FT_HORAIRE_JOUR_COMMENTAIRE_TB.DATE_JOUR) " _
& "AND (FT_HORAIRE_DETAIL_TB.SEQUENCE = FT_HORAIRE_JOUR_COMMENTAIRE_TB.SEQUENCE)) LEFT JOIN FP_EMPLOYE_TB ON FT_HORAIRE_DETAIL_TB.SEQUENCE = FP_EMPLOYE_TB.MATRI) " _
& "INNER JOIN FP_TITRE_EMPLOI_TB ON FT_HORAIRE_DETAIL_TB.TEMP_CODE_BASE = FP_TITRE_EMPLOI_TB.TEMP_CODE) " _
& "LEFT JOIN FI_SERVICE_TB ON FI_UNITE_ADMINIST_TB.SERVICECODE = FI_SERVICE_TB.SERVICECODE) " _
& "LEFT JOIN FT_ASSIGNATION_TB ON FT_HORAIRE_DETAIL_TB.ASSIGNATION_CODE = FT_ASSIGNATION_TB.ASSIGNATION_CODE " _
& "GROUP BY FT_HORAIRE_DETAIL_TB.DATE_JOUR, FI_UNITE_ADMINIST_TB.SERVICECODE, FI_SERVICE_TB.description, FT_HORAIRE_DETAIL_TB.UNITEADMCODE, " _
& "FI_UNITE_ADMINIST_TB.DESCR_ABREGE, FT_HORAIRE_DETAIL_TB.ASSIGNATION_CODE, FT_ASSIGNATION_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.SEQUENCE, " _
& "FP_EMPLOYE_TB.NOM, FP_EMPLOYE_TB.PRENOM, FP_TITRE_EMPLOI_TB.TEMP_CODE, FP_TITRE_EMPLOI_TB.DESCRIPTION, FT_HORAIRE_DETAIL_TB.QUART_CODE, " _
& "FT_HORAIRE_DETAIL_TB.HR_DEBUT, FT_HORAIRE_DETAIL_TB.HR_FIN, FT_CODE_PAIE_TB.CODE, FT_CODE_PAIE_TB.DESCRIPTION, " _
& "FT_HORAIRE_JOUR_COMMENTAIRE_TB.COMMENTAIRE, FT_HORAIRE_DETAIL_TB.CONGE " _
& "HAVING (((FT_HORAIRE_DETAIL_TB.DATE_JOUR) Between #11/2/2009# And #11/15/2009#) AND " _
& "((FT_HORAIRE_DETAIL_TB.SEQUENCE)=" & sequence & ")) " _
& "ORDER BY FT_HORAIRE_DETAIL_TB.DATE_JOUR, FP_EMPLOYE_TB.NOM, FP_EMPLOYE_TB.PRENOM, FT_HORAIRE_DETAIL_TB.HR_DEBUT;")
Do While Not rstDetails.EOF And Not rstDetails.BOF
If Not rstDetails.EOF Or Not rstDetails.BOF Then
Worksheets(ActiveSheet.Name).Range("C" & i + 2).Value = Trim(rstDetails!prenom) & " " & Trim(rstDetails!Nom)
Worksheets(ActiveSheet.Name).Range("B" & i + 2).Value = rstDetails!sequence
Worksheets(ActiveSheet.Name).Range("A" & i + 2).Value = rstDetails!DATE_JOUR
Worksheets(ActiveSheet.Name).Range("D" & i + 2).Value = rstDetails!serviceCode
Worksheets(ActiveSheet.Name).Range("E" & i + 2).Value = rstDetails!FI_SERVICE_TB.DESCRIPTION
Worksheets(ActiveSheet.Name).Range("F" & i + 2).Value = rstDetails!FT_ASSIGNATION_TB.DESCRIPTION
Worksheets(ActiveSheet.Name).Range("G" & i + 2).Value = rstDetails!FP_TITRE_EMPLOI_TB.DESCRIPTION
Worksheets(ActiveSheet.Name).Range("H" & i + 2).Value = rstDetails!FT_CODE_PAIE_TB.DESCRIPTION
A voir également:
- VBA et SQL
- Logiciel sql - Télécharger - Bases de données
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA