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

  1. #1
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut Ouverture État avec message Erreur d'éxécution '3070'

    Bonjour à tous,

    j'ai un formulaire avec des champs dates et des boutons pour ouvrir mes États, et je récupère les dates du formulaire afin d'ouvrir mes États avec les dates voulues. sauf que quand j' appuis sur le nouveau bouton "Ouvrir l'état" j'ai ce message qui affiche "Erreur d'éxécution '3070' le moteur de la base de données Microsoft Access ne reconnais «[Champ2]» en tant que nom de champ ou expression correcte" voici l'image de mon formulaire ainsi que le message d'erreur.

    Nom : 2016-10-11.png
Affichages : 82
Taille : 52,0 Ko

    Voici mes codes VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande21_Click()
        ' Ouverture de l'État Comparatif Trimestre Dollars
        DoCmd.OpenReport "6- État Comparatif Mois Dollars", acViewPreview, , , , Format(RecupDate(1), "yyyy") & ";" & Format(RecupDate(3), "yyyy")
    End Sub
    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
    Private Sub Report_Open(Cancel As Integer)
    Dim vsAnnee() As String
        vsAnnee = Split(Me.OpenArgs, ";")
        Et_Champ1.Caption = vsAnnee(0) 'Libellé de l'étiquette 2014
        Et_Champ2.Caption = vsAnnee(1)  'Libellé de l'étiquette 2015
        Champ1.ControlSource = "=[" & vsAnnee(0) & "]"  '[2014] dans ton exemple
        Champ2.ControlSource = "=[" & vsAnnee(1) & "]"  '[2015] dans ton exemple
        Champ3.ControlSource = "=[" & vsAnnee(1) & "]-[" & vsAnnee(0) & "]"   '=[2015]-[2014] dans ton exemple
        TotalP1.ControlSource = "=sum([" & vsAnnee(0) & "])"
        TotalP2.ControlSource = "=sum([" & vsAnnee(1) & "])"
        GrandTotal1.ControlSource = "=sum([" & vsAnnee(0) & "])"
        GrandTotal2.ControlSource = "=sum([" & vsAnnee(1) & "])"
        TotalGeneral1.ControlSource = "=sum([" & vsAnnee(0) & "])"
        TotalGeneral2.ControlSource = "=sum([" & vsAnnee(1) & "])"
    End Sub
    merci de votre aide
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 661
    Points : 996
    Points
    996

    Par défaut

    Que se passe-t-il lorsque vous ouvrez le formulaire manuellement ? Votre critère est un champ "date", il se peut qu'il utilise le format USA; il se peut aussi que votre champ ne soit pas renvoyé avec la bonne structure (absence de [] ou de "" ou de ## pour une date)

  3. #3
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    Bonjour Zekraoui_Jakani ,

    je suis présentement sur la route, je reviens au bureau vendredi, et merci pour la piste des mon retour au bureau je vais vérifier le tout.

    Par contre j'ai plusieurs états que j'ouvre toujours avec le même VBA et aucun problème avec les autres.

    ==> Ma requête s'ouvre merveilleusement bien!

    Voici le code de ma SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TRANSFORM Nz(Sum(T_SRemise.Montants),0) AS Vente
    SELECT T_Concession.[Nom Concession], T_SRemise.IDProduits, T_SRemise.IDSProduits, Month([RemiseDate]) AS Mois1, MonthName(Month([RemiseDate])) AS Mois
    FROM T_Concession INNER JOIN (T_Remise INNER JOIN T_SRemise ON T_Remise.IDRemise = T_SRemise.IDRemise) ON T_Concession.IDConcession = T_Remise.IDConcession
    WHERE (((T_Remise.RemiseDate) Between RecupDate(1) And RecupDate(2) Or (T_Remise.RemiseDate) Between RecupDate(3) And RecupDate(4)))
    GROUP BY T_Concession.[Nom Concession], T_SRemise.IDProduits, T_SRemise.IDSProduits, Month([RemiseDate]), MonthName(Month([RemiseDate]))
    ORDER BY Month([RemiseDate])
    PIVOT Format([RemiseDate],"yyyy");
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 661
    Points : 996
    Points
    996

    Par défaut

    Essayez de remplacer ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "WHERE T_Remise.RemiseDate Between RecupDate(1) And RecupDate(2) " & _
    "Or T_Remise.RemiseDate Between RecupDate(3) And RecupDate(4) "
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "WHERE (([T_Remise].RemiseDate >= [RecupDate(1)] And [T_Remise].RemiseDate <= [RecupDate(2)]) Or " & _
    "([T_Remise].RemiseDate >= [RecupDate(3)] And [T_Remise].RemiseDate <= [RecupDate(4)])) "
    Les guillemets sont nécessaires si c'est du code VBA; en revanche, il faut les supprimer (ainsi que le "& _") si c'est la vue SQL d'une requête.

  5. #5
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    Bonjour Zekraoui_Jakani ,

    j'ai changer le code SQL par celui ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TRANSFORM Nz(Sum(T_SRemise.Montants),0) AS Vente
    SELECT T_Concession.[Nom Concession], T_SRemise.IDProduits, T_SRemise.IDSProduits, Month([RemiseDate]) AS Mois1, MonthName(Month([RemiseDate])) AS Mois
    FROM T_Concession INNER JOIN (T_Remise INNER JOIN T_SRemise ON T_Remise.IDRemise = T_SRemise.IDRemise) ON T_Concession.IDConcession = T_Remise.IDConcession
    WHERE (([T_Remise].RemiseDate >= [RecupDate(1)] And [T_Remise].RemiseDate <= [RecupDate(2)]) Or 
    ([T_Remise].RemiseDate >= [RecupDate(3)] And [T_Remise].RemiseDate <= [RecupDate(4)]))
    GROUP BY T_Concession.[Nom Concession], T_SRemise.IDProduits, T_SRemise.IDSProduits, Month([RemiseDate]), MonthName(Month([RemiseDate]))
    ORDER BY Month([RemiseDate])
    PIVOT Format([RemiseDate],"yyyy");
    et j'ai ce message quand j'ouvre ma requête :
    Nom : 2016-10-13.png
Affichages : 48
Taille : 10,6 Ko

    pourtant ma requête avec mon ancien Code SQL fonctionnait très bien, c'est juste au niveau de mon État qui cause problème.
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  6. #6
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    Me semble qu'il me manque choses après le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PIVOT Format([RemiseDate],"yyyy");
    après le ; j'aurais pas quel choses à mettre ?

    et vu qu'avec mon ancien code SQL, ma requête ouvre merveilleusement bien, la cause est dans l'État qui a quelques choses qui accroche.
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 661
    Points : 996
    Points
    996

    Par défaut

    Peux-tu créer une nouvelle requête en mode SQL (sans aucune table/query), et y copier ton code, puis la lancer. Qu'est-ce que ça donne ?

  8. #8
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    j'ai fait l'exercise, sans créer l'État par contre, et il m'envoie un erreur "Erreur d'éxécution "94" si je clique sur débogage il m'ouvre VBA

    à cette endroit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function RecupDate(ByVal Numdate As Integer) As Date
        RecupDate = Forms("Plage de date Année Dollars").Controls("Date " & Numdate)
    End Function
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 661
    Points : 996
    Points
    996

    Par défaut

    Correction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RecupDate = "Date " & Forms("Plage de date Année Dollars").Controls("Numdate")

  10. #10
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    Salut,

    si je change le code, et que j'ai d'autre états qui utilise se code et fonctionne très bien avec mon ancien, cela risque de pas bien allé non ?
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  11. #11
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    ou bien je crée un autre module ?
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  12. #12
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    j'ai essayer et effectivement, ca cause problème pour mes autres États
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

  13. #13
    Membre du Club Avatar de DidoFido
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2009
    Messages : 107
    Points : 51
    Points
    51

    Par défaut

    J'ai été voir ce que Didier L, m'avais suggéré http://www.developpez.net/forums/d15...alyse-croisee/

    et dans ce post il me suggérait de :

    supposons que tu crée dans ton état 3 champs indépendant Champ1,Champ2 et Champ3 pour faire afficher tes valeurs et ton calcul.
    Tu les laisse indépendant car tu ne sais pas sur quel année ils porteront.
    Tu crée aussi deux étiquettes Et_Champ1 et Et_Champ2 vide pour les titre de tes années.

    Ma question est quand je crée mon état je suis allé avec L'assistant État, donc est-ce que les champs sont indépendant dans ce cas là ?
    Office 365 Famille
    J'adore Access, mais j'aimerais bien maîtriser le VBA

Discussions similaires

  1. Vérification de champ avec message erreur
    Par dragoon25 dans le forum Formulaires
    Réponses: 10
    Dernier message: 11/02/2014, 17h44
  2. requête sql avec message erreur
    Par wiski08000 dans le forum Débutant
    Réponses: 4
    Dernier message: 04/01/2014, 11h19
  3. [AC-2010] Erreur d'éxécution '3070'
    Par misterlagaffe dans le forum Modélisation
    Réponses: 1
    Dernier message: 08/03/2013, 11h17
  4. Problème avec message erreur
    Par Udani dans le forum MATLAB
    Réponses: 10
    Dernier message: 21/12/2009, 06h58
  5. Réponses: 1
    Dernier message: 24/07/2007, 12h10

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