IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

requete sql vers vba


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut requete sql vers vba
    bonjour

    je réalise un publipostage et pour cela j'utilise une requete avec des critaires et donc je peux avoir une requete vide.

    donc j'aimerai savoir comment vérifier si ma requete envoi un enregistrement ou non et si on n'envoi pas d'enregistrement avertir l'utilisateur

    qui peux m'aide?? merci

    j'ai trouve une fonction avec une requete en sql et j'aimerai l'incorporé en vba mais je ne sais comment faire ( remplace par le "a")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Dim strNomRequete As String
     
     
    ' ma requete a mettre en vba :
     
    DoCmd.RunSQL "SELECT ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS, ENTREPRISE_SOLLICITE.NUM_ENTREPRISE, ENTREPRISE_SOLLICITE.NUM_AO, ENTREPRISE_SOLLICITE.NUM_OPERATION, OPERATION.NOM_OPERATION, OPERATION.ADRESSE_OPERATION, OPERATION.ADRESSEBIS_OPERATION, OPERATION.VILLE_OPERATION, OPERATION.CP_OPERATION, OPERATION.PROGRAMME, [POUC_TVA]*100 AS POUC_TVA1, SOCIETE.VILLE3D, ESTIM_OPE.NUM_LOT, ENTREPRISE_SOLLICITE.DEVIS_RETENUE, ENTREPRISE.NOM_ENTREPRISE, ENTREPRISE.ADRESSE_ENTREPRISE, ENTREPRISE.ADRESSEBIS_ENTREPRISE, ENTREPRISE.VILLE_ENTREPRISE, ENTREPRISE.CP_ENTREPRISE, ENTREPRISE.RCS, ENTREPRISE.RCS_VILLE, ENTREPRISE_CONTACT.NOM_ENTRE_CONTACT, CORPS_ETATS.NOM_CORPS_ETATS, ENTREPRISE_SOLLICITE.MONTANT_MARCHE, [MONTANT_MARCHE]*[POUC_TVA] AS MONTANT_TVA, [MONTANT_MARCHE]+[MONTANT_TVA] AS MONTANT_MARCHETTC" & _
    " FROM SOCIETE INNER JOIN (((INTERVENANT_EXT_CONTACT INNER JOIN (OPERATION INNER JOIN INTERVENANT_EXT_CONTACT_OPE ON (OPERATION.NUM_INTERV_PROMOTEUR = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND" & _
    "(OPERATION.NUM_OPERATION = INTERVENANT_EXT_CONTACT_OPE.NUM_OPERATION)) ON (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_EXT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_CONTACT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_CONTACT)) INNER JOIN (ENTREPRISE_CONTACT INNER JOIN ENTREPRISE_CONTACT_OPE ON (ENTREPRISE_CONTACT.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE) AND (ENTREPRISE_CONTACT.NUM_ENTRE_CONTACT = ENTREPRISE_CONTACT_OPE.NUM_ENTRE_CONTACT)) ON OPERATION.NUM_OPERATION = ENTREPRISE_CONTACT_OPE.NUM_OPERATION) INNER JOIN ((CORPS_ETATS INNER JOIN ESTIM_OPE ON CORPS_ETATS.NUM_CORPS_ETATS = ESTIM_OPE.NUM_CORPS_ETATS) INNER JOIN (ENTREPRISE INNER JOIN ENTREPRISE_SOLLICITE ON ENTREPRISE.NUM_ENTREPRISE = ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)" & _
    " ON (ESTIM_OPE.NUM_OPERATION = ENTREPRISE_SOLLICITE.NUM_OPERATION) AND (ESTIM_OPE.NUM_CORPS_ETATS = ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)) ON OPERATION.NUM_OPERATION = ESTIM_OPE.NUM_OPERATION) ON SOCIETE.NUM_SOCIETE_3D = OPERATION.NUM_SOCIETE_3D WHERE (((ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)=[Forms]![Fiche Marché]![NUM_CORPS_ETATS]) AND ((ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)=[Forms]![Fiche Marché]![NUM_ENTREPRISE]) AND ((ENTREPRISE_SOLLICITE.NUM_AO)=[Forms]![Fiche Marché]![NUM_AO]) AND ((ENTREPRISE_SOLLICITE.NUM_OPERATION)=[Forms]![Fiche Marché]![NUM_OPERATION]) AND ((ENTREPRISE_SOLLICITE.DEVIS_RETENUE)=Yes) AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes));"
     
     
     
     
     
    strNomRequete = "a"
     
    If DCount("*", strNomRequete) > 0 Then
       DoCmd.OpenQuery strNomRequete, acNormal
    Else
       MsgBox "La requête '" & strNomRequete & "' ne renvoie aucun enregistrement"
    End If

  2. #2
    Invité
    Invité(e)
    Par défaut
    essaies ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    DoCmd.SetWarnings False
    Dim sql As String
    sql = "SELECT ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS, ENTREPRISE_SOLLICITE.NUM_ENTREPRISE, ENTREPRISE_SOLLICITE.NUM_AO, " & _
          "ENTREPRISE_SOLLICITE.NUM_OPERATION, OPERATION.NOM_OPERATION, OPERATION.ADRESSE_OPERATION, OPERATION.ADRESSEBIS_OPERATION, " & _
          "OPERATION.VILLE_OPERATION, OPERATION.CP_OPERATION, OPERATION.PROGRAMME, [POUC_TVA]*100 AS POUC_TVA1, SOCIETE.VILLE3D," & _
          "ESTIM_OPE.NUM_LOT, ENTREPRISE_SOLLICITE.DEVIS_RETENUE, ENTREPRISE.NOM_ENTREPRISE, ENTREPRISE.ADRESSE_ENTREPRISE, " & _
          "ENTREPRISE.ADRESSEBIS_ENTREPRISE, ENTREPRISE.VILLE_ENTREPRISE, ENTREPRISE.CP_ENTREPRISE, ENTREPRISE.RCS, " & _
          "ENTREPRISE.RCS_VILLE, ENTREPRISE_CONTACT.NOM_ENTRE_CONTACT, CORPS_ETATS.NOM_CORPS_ETATS, ENTREPRISE_SOLLICITE.MONTANT_MARCHE, " & _
          "[MONTANT_MARCHE]*[POUC_TVA] AS MONTANT_TVA, [MONTANT_MARCHE]+[MONTANT_TVA] AS MONTANT_MARCHETTC" & _
          "FROM SOCIETE INNER JOIN (((INTERVENANT_EXT_CONTACT INNER JOIN (OPERATION INNER JOIN INTERVENANT_EXT_CONTACT_OPE ON " & _
          "(OPERATION.NUM_INTERV_PROMOTEUR = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND " & _
          "(OPERATION.NUM_OPERATION = INTERVENANT_EXT_CONTACT_OPE.NUM_OPERATION)) ON (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_EXT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT)" & _
          "AND (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_CONTACT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_CONTACT)) " & _
          "INNER JOIN (ENTREPRISE_CONTACT NNER JOIN ENTREPRISE_CONTACT_OPE ON (ENTREPRISE_CONTACT.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE) " & _
          "AND (ENTREPRISE_CONTACT.NUM_ENTRE_CONTACT = ENTREPRISE_CONTACT_OPE.NUM_ENTRE_CONTACT)) " & _
          "ON OPERATION.NUM_OPERATION = ENTREPRISE_CONTACT_OPE.NUM_OPERATION) INNER JOIN ((CORPS_ETATS INNER JOIN ESTIM_OPE " & _
          "ON CORPS_ETATS.NUM_CORPS_ETATS = ESTIM_OPE.NUM_CORPS_ETATS) INNER JOIN (ENTREPRISE INNER JOIN ENTREPRISE_SOLLICITE  " & _
          "ON ENTREPRISE.NUM_ENTREPRISE = ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)ON (ESTIM_OPE.NUM_OPERATION = ENTREPRISE_SOLLICITE.NUM_OPERATION) " & _
          "AND (ESTIM_OPE.NUM_CORPS_ETATS = ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)) " & _
          "ON OPERATION.NUM_OPERATION = ESTIM_OPE.NUM_OPERATION) ON SOCIETE.NUM_SOCIETE_3D = OPERATION.NUM_SOCIETE_3D " & _
          "WHERE (((ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)=[Forms]![Fiche Marché]![NUM_CORPS_ETATS]) " & _
          "AND ((ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)=[Forms]![Fiche Marché]![NUM_ENTREPRISE]) " & _
          "AND ((ENTREPRISE_SOLLICITE.NUM_AO)=[Forms]![Fiche Marché]![NUM_AO]) " & _
          "AND ((ENTREPRISE_SOLLICITE.NUM_OPERATION)=[Forms]![Fiche Marché]![NUM_OPERATION]) " & _
          "AND ((ENTREPRISE_SOLLICITE.DEVIS_RETENUE)=Yes) AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) " & _
          "AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes));"
     DoCmd.RunSQL sql

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    j'arrive pas a faire ce que tu me dis

    je souhaite remplace le "a" ( strNomRequete = "a")

    par la requete en vba afin qu'il me réalise le test de sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If DCount("*", strNomRequete) > 0 Then
       DoCmd.OpenQuery strNomRequete, acNormal
    Else
       MsgBox "La requête '" & strNomRequete & "' ne renvoie aucun enregistrement"
    End If
    tu comprend?

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut


    Simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Dim a as String, strNomRequete
    
    a = "SELECT ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS, ENTREPRISE_SOLLICITE.NUM_ENTREPRISE, ENTREPRISE_SOLLICITE.NUM_AO, ENTREPRISE_SOLLICITE.NUM_OPERATION, OPERATION.NOM_OPERATION, OPERATION.ADRESSE_OPERATION, OPERATION.ADRESSEBIS_OPERATION, OPERATION.VILLE_OPERATION, OPERATION.CP_OPERATION, OPERATION.PROGRAMME, [POUC_TVA]*100 AS POUC_TVA1, SOCIETE.VILLE3D, ESTIM_OPE.NUM_LOT, ENTREPRISE_SOLLICITE.DEVIS_RETENUE, ENTREPRISE.NOM_ENTREPRISE, ENTREPRISE.ADRESSE_ENTREPRISE, ENTREPRISE.ADRESSEBIS_ENTREPRISE, ENTREPRISE.VILLE_ENTREPRISE, ENTREPRISE.CP_ENTREPRISE, ENTREPRISE.RCS, ENTREPRISE.RCS_VILLE, ENTREPRISE_CONTACT.NOM_ENTRE_CONTACT, CORPS_ETATS.NOM_CORPS_ETATS, ENTREPRISE_SOLLICITE.MONTANT_MARCHE, [MONTANT_MARCHE]*[POUC_TVA] AS MONTANT_TVA, [MONTANT_MARCHE]+[MONTANT_TVA] AS MONTANT_MARCHETTC" & _
    " FROM SOCIETE INNER JOIN (((INTERVENANT_EXT_CONTACT INNER JOIN (OPERATION INNER JOIN INTERVENANT_EXT_CONTACT_OPE ON (OPERATION.NUM_INTERV_PROMOTEUR = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND" & _
    "(OPERATION.NUM_OPERATION = INTERVENANT_EXT_CONTACT_OPE.NUM_OPERATION)) ON (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_EXT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_CONTACT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_CONTACT)) INNER JOIN (ENTREPRISE_CONTACT INNER JOIN ENTREPRISE_CONTACT_OPE ON (ENTREPRISE_CONTACT.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE) AND (ENTREPRISE_CONTACT.NUM_ENTRE_CONTACT = ENTREPRISE_CONTACT_OPE.NUM_ENTRE_CONTACT)) ON OPERATION.NUM_OPERATION = ENTREPRISE_CONTACT_OPE.NUM_OPERATION) INNER JOIN ((CORPS_ETATS INNER JOIN ESTIM_OPE ON CORPS_ETATS.NUM_CORPS_ETATS = ESTIM_OPE.NUM_CORPS_ETATS) INNER JOIN (ENTREPRISE INNER JOIN ENTREPRISE_SOLLICITE ON ENTREPRISE.NUM_ENTREPRISE = ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)" & _
    " ON (ESTIM_OPE.NUM_OPERATION = ENTREPRISE_SOLLICITE.NUM_OPERATION) AND (ESTIM_OPE.NUM_CORPS_ETATS = ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)) ON OPERATION.NUM_OPERATION = ESTIM_OPE.NUM_OPERATION) ON SOCIETE.NUM_SOCIETE_3D = OPERATION.NUM_SOCIETE_3D WHERE (((ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)=[Forms]![Fiche Marché]![NUM_CORPS_ETATS]) AND ((ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)=[Forms]![Fiche Marché]![NUM_ENTREPRISE]) AND ((ENTREPRISE_SOLLICITE.NUM_AO)=[Forms]![Fiche Marché]![NUM_AO]) AND ((ENTREPRISE_SOLLICITE.NUM_OPERATION)=[Forms]![Fiche Marché]![NUM_OPERATION]) AND ((ENTREPRISE_SOLLICITE.DEVIS_RETENUE)=Yes) AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes));"
     
    Docmd.RunSql a
    
    ' Ligne inutile pour la suite de ton programme
    strNomRequete = a
    
    
    If DCount("*", a) > 0 Then
       DoCmd.OpenQuery a, acNormal
    Else
       MsgBox "La requête '" & a & "' ne renvoie aucun enregistrement"
    End If
    Bonne journée
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  5. #5
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    • DoCmd.RunSQL ne sert que pour les requêtes actions. Pas pour les requêtes de Sélection.
    • Si la requête n'existe pas en tant qu'objet Access DCount ne sert à rien.

    Ta requête n'existant que dans ton code VBA (si j'ai bien compris), il faut utiliser un recordset.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim rs As DAO.Recordset
    Dim strSQL As String, blnRequeteVide as Boolean
     
    strSQL = "SELECT ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS, ...."
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
    blnRequeteVide = False
    If rs.EOF Then blnRequeteVide = True
    rs.Close
     
    If Not blnRequeteVide Then
       ' Il y a au moins un enregistrement
       ' ....
    Else
       MsgBox "La requête ne renvoie aucun enregistrement"
    End If
    A+

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    LEDZEPPII j'ai essai ton code mais sa ne marche pas j'ai copier mon code desous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     If listeimpression = 40 Then
     DoCmd.RunCommand acCmdRefresh
    Dim rs As DAO.Recordset
    Dim strSQL As String, blnRequeteVide As Boolean
     
    strSQL = "SELECT ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS, ENTREPRISE_SOLLICITE.NUM_ENTREPRISE, ENTREPRISE_SOLLICITE.NUM_AO, ENTREPRISE_SOLLICITE.NUM_OPERATION, OPERATION.NOM_OPERATION, OPERATION.ADRESSE_OPERATION, OPERATION.ADRESSEBIS_OPERATION, OPERATION.VILLE_OPERATION, OPERATION.CP_OPERATION, OPERATION.PROGRAMME, [POUC_TVA]*100 AS POUC_TVA1, SOCIETE.VILLE3D, ESTIM_OPE.NUM_LOT, ENTREPRISE_SOLLICITE.DEVIS_RETENUE, ENTREPRISE.NOM_ENTREPRISE, ENTREPRISE.ADRESSE_ENTREPRISE, ENTREPRISE.ADRESSEBIS_ENTREPRISE, ENTREPRISE.VILLE_ENTREPRISE, ENTREPRISE.CP_ENTREPRISE, ENTREPRISE.RCS, ENTREPRISE.RCS_VILLE, ENTREPRISE_CONTACT.NOM_ENTRE_CONTACT, CORPS_ETATS.NOM_CORPS_ETATS, ENTREPRISE_SOLLICITE.MONTANT_MARCHE, [MONTANT_MARCHE]*[POUC_TVA] AS MONTANT_TVA, [MONTANT_MARCHE]+[MONTANT_TVA] AS MONTANT_MARCHETTC" & _
    " FROM SOCIETE INNER JOIN (((INTERVENANT_EXT_CONTACT INNER JOIN (OPERATION INNER JOIN INTERVENANT_EXT_CONTACT_OPE ON (OPERATION.NUM_INTERV_PROMOTEUR = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND" & _
    "(OPERATION.NUM_OPERATION = INTERVENANT_EXT_CONTACT_OPE.NUM_OPERATION)) ON (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_EXT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT) AND (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_CONTACT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_CONTACT)) INNER JOIN (ENTREPRISE_CONTACT INNER JOIN ENTREPRISE_CONTACT_OPE ON (ENTREPRISE_CONTACT.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE) AND (ENTREPRISE_CONTACT.NUM_ENTRE_CONTACT = ENTREPRISE_CONTACT_OPE.NUM_ENTRE_CONTACT)) ON OPERATION.NUM_OPERATION = ENTREPRISE_CONTACT_OPE.NUM_OPERATION) INNER JOIN ((CORPS_ETATS INNER JOIN ESTIM_OPE ON CORPS_ETATS.NUM_CORPS_ETATS = ESTIM_OPE.NUM_CORPS_ETATS) INNER JOIN (ENTREPRISE INNER JOIN ENTREPRISE_SOLLICITE ON ENTREPRISE.NUM_ENTREPRISE = ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)" & _
    " ON (ESTIM_OPE.NUM_OPERATION = ENTREPRISE_SOLLICITE.NUM_OPERATION) AND (ESTIM_OPE.NUM_CORPS_ETATS = ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)) ON OPERATION.NUM_OPERATION = ESTIM_OPE.NUM_OPERATION) ON SOCIETE.NUM_SOCIETE_3D = OPERATION.NUM_SOCIETE_3D WHERE (((ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)=[Forms]![Fiche Marché]![NUM_CORPS_ETATS]) AND ((ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)=[Forms]![Fiche Marché]![NUM_ENTREPRISE]) AND ((ENTREPRISE_SOLLICITE.NUM_AO)=[Forms]![Fiche Marché]![NUM_AO]) AND ((ENTREPRISE_SOLLICITE.NUM_OPERATION)=[Forms]![Fiche Marché]![NUM_OPERATION]) AND ((ENTREPRISE_SOLLICITE.DEVIS_RETENUE)=Yes) AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes));"
     
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
    blnRequeteVide = False
    If rs.EOF Then blnRequeteVide = True
    rs.Close
     
    If Not blnRequeteVide Then
     
     DoCmd.SetWarnings False
     
     DoCmd.RunSQL "DELETE entreprise.* FROM entreprise IN 'C:\access_pc3d\publipostage.mdb';"
    DoCmd.RunSQL "INSERT INTO entreprise ( NUM_CORPS_ETATS, NUM_ENTREPRISE, NUM_AO, NUM_OPERATION, NOM_OPERATION, ADRESSE_OPERATION, ADRESSEBIS_OPERATION, VILLE_OPERATION, CP_OPERATION, PROGRAMME, POUC_TVA, VILLE3D, NUM_LOT, DEVIS_RETENUE, NOM_ENTREPRISE, ADRESSE_ENTREPRISE, ADRESSEBIS_ENTREPRISE, VILLE_ENTREPRISE, CP_ENTREPRISE, RCS, RCS_VILLE, NOM_ENTRE_CONTACT, NOM_CORPS_ETATS, MONTANT_MARCHE, MONTANT_TVA, MONTANT_MARCHETTC ) IN 'C:\access_pc3d\publipostage.mdb' SELECT ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS, ENTREPRISE_SOLLICITE.NUM_ENTREPRISE, ENTREPRISE_SOLLICITE.NUM_AO, ENTREPRISE_SOLLICITE.NUM_OPERATION, OPERATION.NOM_OPERATION, OPERATION.ADRESSE_OPERATION, OPERATION.ADRESSEBIS_OPERATION, OPERATION.VILLE_OPERATION, OPERATION.CP_OPERATION, OPERATION.PROGRAMME, [POUC_TVA]*100 AS POUC_TVA1, SOCIETE.VILLE3D, ESTIM_OPE.NUM_LOT, ENTREPRISE_SOLLICITE.DEVIS_RETENUE, ENTREPRISE.NOM_ENTREPRISE, ENTREPRISE.ADRESSE_ENTREPRISE," & _
    " ENTREPRISE.ADRESSEBIS_ENTREPRISE, ENTREPRISE.VILLE_ENTREPRISE, ENTREPRISE.CP_ENTREPRISE, ENTREPRISE.RCS, ENTREPRISE.RCS_VILLE, ENTREPRISE_CONTACT.NOM_ENTRE_CONTACT, CORPS_ETATS.NOM_CORPS_ETATS, ENTREPRISE_SOLLICITE.MONTANT_MARCHE, [MONTANT_MARCHE]*[POUC_TVA] AS MONTANT_TVA, [MONTANT_MARCHE]+[MONTANT_TVA] AS MONTANT_MARCHETTC" & _
    " FROM SOCIETE INNER JOIN (((INTERVENANT_EXT_CONTACT INNER JOIN (OPERATION INNER JOIN INTERVENANT_EXT_CONTACT_OPE ON (OPERATION.NUM_OPERATION = INTERVENANT_EXT_CONTACT_OPE.NUM_OPERATION) AND (OPERATION.NUM_INTERV_PROMOTEUR = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT)) ON (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_CONTACT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_CONTACT) AND (INTERVENANT_EXT_CONTACT.NUM_INTERVENANT_EXT = INTERVENANT_EXT_CONTACT_OPE.NUM_INTERVENANT_EXT)) INNER JOIN (ENTREPRISE_CONTACT INNER JOIN ENTREPRISE_CONTACT_OPE ON (ENTREPRISE_CONTACT.NUM_ENTRE_CONTACT = ENTREPRISE_CONTACT_OPE.NUM_ENTRE_CONTACT) AND (ENTREPRISE_CONTACT.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE)) ON OPERATION.NUM_OPERATION = ENTREPRISE_CONTACT_OPE.NUM_OPERATION) INNER JOIN ((CORPS_ETATS INNER JOIN ESTIM_OPE ON CORPS_ETATS.NUM_CORPS_ETATS = ESTIM_OPE.NUM_CORPS_ETATS) INNER" & _
    " JOIN (ENTREPRISE INNER JOIN ENTREPRISE_SOLLICITE ON ENTREPRISE.NUM_ENTREPRISE = ENTREPRISE_SOLLICITE.NUM_ENTREPRISE) ON (ESTIM_OPE.NUM_CORPS_ETATS = ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS) AND (ESTIM_OPE.NUM_OPERATION = ENTREPRISE_SOLLICITE.NUM_OPERATION)) ON OPERATION.NUM_OPERATION = ESTIM_OPE.NUM_OPERATION) ON SOCIETE.NUM_SOCIETE_3D = OPERATION.NUM_SOCIETE_3D" & _
    " WHERE (((ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS)=[Forms]![Fiche Marché]![NUM_CORPS_ETATS]) AND ((ENTREPRISE_SOLLICITE.NUM_ENTREPRISE)=[Forms]![Fiche Marché]![NUM_ENTREPRISE]) AND ((ENTREPRISE_SOLLICITE.NUM_AO)=[Forms]![Fiche Marché]![NUM_AO]) AND ((ENTREPRISE_SOLLICITE.NUM_OPERATION)=[Forms]![Fiche Marché]![NUM_OPERATION]) AND ((ENTREPRISE_SOLLICITE.DEVIS_RETENUE)=Yes) AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes));"
    DoCmd.SetWarnings True
    ' Chemin d'accès au document Word de publipostage
    Const DOC_WORD = "C:\access_pc3d\Acte d'engagement.doc"
    ' Variable pour gérer l'objet Word
    Dim wdApp As Object    'ici
    ' Passer à la partie Publipostage
    Set wdApp = CreateObject("Word.Application")   'ici
    With wdApp
        ' Word est visible pendant les tests
        .Visible = True
        ' Ouvrir la lettre type
        .Documents.Open DOC_WORD
        ' Lier la lettre type à la source de données Access
        .ActiveDocument.MailMerge.OpenDataSource _
            Name:="C:\access_pc3d\publipostage.mdb", _
            SQLStatement:="SELECT * FROM [entreprise]"
         ' La fusion doit se faire dans un nouveau document
        .ActiveDocument.MailMerge.destination = wdSendToNewDocument
        ' Exécuter la fusion
        .ActiveDocument.MailMerge.Execute
        ' Redonner le focus à la lettre type et fermer sans enregistrer
        .Documents.Open DOC_WORD
        .ActiveDocument.Close wdDoNotSaveChanges
        End With
    Set wdApp = Nothing
    Exit Sub
     Else
       MsgBox "Merci de renseigné pour l'entreprise ou le promoteur une personne signature de AO"
    End If
    et Je te confirme bien que ma requete n'existe pas réellement que en vba

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb requete SQL vers VBA pour un formulaire
    Par Grodaf dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/12/2008, 09h20
  2. PB traduction requete sql vers vba
    Par stan314 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/05/2006, 17h27
  3. Résultat d'une requete SQL vers Excel
    Par climz dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 15h44
  4. Exporter des données d'un requete SQL vers excel (csv)
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 08/10/2005, 22h28
  5. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo