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 :

testé une requete vide [AC-2003]


Sujet :

VBA Access

  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 testé une requete vide
    bonjour

    je souhaite teste une requete si elle est vide mais sa ne marche pas quel est le probleme??

    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 rs As DAO.Recordset
    Dim strSql As String, blnRequeteVide As Boolean
    strSql = "SELECT ENTREPRISE_AVENANT.DATE_AVENANT, 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, IIf([SIEGE_SOCIAL]=Yes,[SSADRESSE_ENTREPRISE],[ADRESSE_ENTREPRISE]) AS adresse, IIf([SIEGE_SOCIAL]=Yes,[SSADRESSEBIS_ENTREPRISE],[ADRESSEBIS_ENTREPRISE]) AS ADRESSEBIS, IIf([SIEGE_SOCIAL]=Yes," & _
    " [SSVILLE_ENTREPRISE],[VILLE_ENTREPRISE]) AS VILLE, IIf([SIEGE_SOCIAL]=Yes,[SSCP_ENTREPRISE],[CP_ENTREPRISE]) AS CP, ENTREPRISE.RCS, ENTREPRISE.RCS_VILLE, ENTREPRISE_CONTACT.NOM_ENTRE_CONTACT, INTERVENANT_EXT_CONTACT.NOM_INTERVENANT_CONTACT, CORPS_ETATS.NOM_CORPS_ETATS, ENTREPRISE_SOLLICITE.MONTANT_MARCHE, Round([MONTANT_MARCHE]*[POUC_TVA],2) AS MONTANT_TVA, [MONTANT_MARCHE]+[MONTANT_TVA] AS MONTANT_MARCHETTC, ENTREPRISE_SOLLICITE.NBJOURSPAIEMENT, ENTREPRISE_SOLLICITE.DATE_PAIEMENT, ENTREPRISE_SOLLICITE.SPECIALE_PAIEMENT, ENTREPRISE_SOLLICITE.POURC_SPE_COMMANDE, ENTREPRISE_SOLLICITE.POURC_SPE_LIVRAI_MAT, ENTREPRISE_SOLLICITE.POURC_SPE_POSE, ENTREPRISE_SOLLICITE.POURC_SPE_LIVRAISON, OPERATION.NB_LOGE, INTERVENANT_EXT.NOM_INTERVENANT_EXT, INTERVENANT_EXT.VILLE_INTERVENANT_EXT" & _
    " 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 ((CORPS_ETATS INNER JOIN ESTIM_OPE ON CORPS_ETATS.NUM_CORPS_ETATS = ESTIM_OPE.NUM_CORPS_ETATS) INNER JOIN ((ENTREPRISE_CONTACT INNER JOIN ((ENTREPRISE INNER JOIN ENTREPRISE_SOLLICITE ON ENTREPRISE.NUM_ENTREPRISE = ENTREPRISE_SOLLICITE.NUM_ENTREPRISE) INNER JOIN ENTREPRISE_CONTACT_OPE ON (ENTREPRISE_SOLLICITE.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE) AND (ENTREPRISE_SOLLICITE.NUM_OPERATION = ENTREPRISE_CONTACT_OPE.NUM_OPERATION)) ON (ENTREPRISE_CONTACT.NUM_ENTRE_CONTACT = ENTREPRISE_CONTACT_OPE.NUM_ENTRE_CONTACT)" & _
    " AND (ENTREPRISE_CONTACT.NUM_ENTREPRISE = ENTREPRISE_CONTACT_OPE.NUM_ENTREPRISE)) INNER JOIN ENTREPRISE_AVENANT ON (ENTREPRISE_SOLLICITE.NUM_AO = ENTREPRISE_AVENANT.NUM_AO) AND (ENTREPRISE_SOLLICITE.NUM_OPERATION = ENTREPRISE_AVENANT.NUM_OPERATION) AND (ENTREPRISE_SOLLICITE.NUM_ENTREPRISE = ENTREPRISE_AVENANT.NUM_ENTREPRISE) AND (ENTREPRISE_SOLLICITE.NUM_CORPS_ETATS = ENTREPRISE_AVENANT.NUM_CORPS_ETATS)) 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) INNER JOIN (INTERVENANT_EXT_OPE INNER JOIN INTERVENANT_EXT ON INTERVENANT_EXT_OPE.NUM_INTERVENANT_EXT = INTERVENANT_EXT.NUM_INTERVENANT_EXT) ON OPERATION.NUM_OPERATION = INTERVENANT_EXT_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_AVENANT.NUM_AVENANT)=1) AND ((ENTREPRISE_AVENANT.TYPE)='os') AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes) AND ((INTERVENANT_EXT_OPE.NUM_CORPS_ETATS)=7));"
    Set rs = CurrentDb.OpenRecordset(strSql, dbOpenSnapshot)
    blnRequeteVide = False
    If rs.EOF Then blnRequeteVide = True
    rs.Close
     
     If blnRequeteVide = True Then
        MsgBox "Merci de renseigné pour l'entreprise ou le promoteur une personne signature de AO"
    Else
    .........

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bonjour,

    Le kit 2.0 de la boule de cristal n'est pas encore installé sur le forum
    si tu nous dis déjà l'erreur qui surgit avec ton code, on pourra commencer à chercher une solution.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  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'ai rien qui ce passe pas de code d'erreur et ma routine apres le ELSE ne ce lance pas alors que si j'enleve le test sur vide le reste marche donc sa proviens du test sur vide tu comprend?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    essaie de changer le mode d'ouverture du recordset
    dbOpenSnapshot => DbOpenDynaSet
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Bonsoir,
    A vrai dire, d'après ton code tu fermes le recordset qu'il soit vide ou pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If rs.EOF Then blnRequeteVide = True
    rs.Close
    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Set rs = CurrentDb.OpenRecordset(strSql, dbOpenSnapshot)
     If rs.BOF And rs.EOF Then
        MsgBox "Merci de renseigné pour l'entreprise ou le promoteur une personne signature de AO"
     Else
      ...
     End if
     rs.Close
     Set rs=Nothing
    Maintenant, je ne suis pas conviancu par les critères de la requête dans lesquels tu fais référence aux noms de contrôles du formulaire et non aux valeurs qu'ils contiennent.

  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
    Non sa marche pas
    je joint un morceau de la base dans le formulaire dasn impression a droite dans la liste déroulante il faut choisir Acte d'engagement"

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Oui, corrige la clause WHERE des requêtes et ça fonctionnera.
    tu n'as aucun message d'erreur parce que tu gères les erreurs dans la procédure.

    la clause WHERE doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " 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_AVENANT.NUM_AVENANT)=1) AND ((ENTREPRISE_AVENANT.TYPE)='os') AND ((ENTREPRISE_CONTACT.SIGNATURE_MARCHER)=Yes) AND ((INTERVENANT_EXT_CONTACT.SIGNATURE_MARCHERMO)=Yes) AND ((INTERVENANT_EXT_OPE.NUM_CORPS_ETATS)=7));"

  8. #8
    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
    Merci super je crois que j'ai compris j'ai un autre formulaire qui me faire pareil je vais en faire de même merci bcp

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

Discussions similaires

  1. Vérifier le contenue d' une requete vide
    Par SonnyFab dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/08/2010, 14h08
  2. tester si le résultat d'une requete est vide
    Par monstour dans le forum ASP
    Réponses: 13
    Dernier message: 04/10/2006, 14h14
  3. Test des liens vide sur une base de données
    Par FLANQUART Marie dans le forum ASP
    Réponses: 1
    Dernier message: 10/11/2005, 14h35
  4. Requete dans une table vide
    Par MaitrePylos dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/08/2005, 13h26
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

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