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

Requêtes et SQL. Discussion :

Erreur 424: Objet Requis [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut Erreur 424: Objet Requis
    Re bonjour,

    Toujours sur le même code que mon précédent topic "Erreur 3075"

    Je me trouve maintenant heurter à une erreur 424.

    Je suppose que ça vient du fait de ma syntaxe, mais le problème c'est que je ne peux pas vraiment faire autrement:

    Voici le code complet:

    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
    df = Format(Now(), "mm/dd/yyyy")
    i = 1
    Dim date_heure As Date
    Dim début_exploitation As Date
    Dim fin_exploitation As Date
    SQL_def = "SELECT [Parc Z2N].rame_complète, defauts_NAT.[Date], defauts_NAT.première, defauts_NAT.vu, defauts_NAT.exploitation FROM [Parc Z2N] INNER JOIN defauts_NAT ON [Parc Z2N].véhicule = defauts_NAT.Véhicule WHERE defauts_nat.vu = false and defauts_nat.[date] < #" & df & "#;" '[WHERE defauts_nat.vu=True] pour un reset
    Set rs_def = CurrentDb.OpenRecordset(SQL_def)
    rs_def.MoveLast
    DoCmd.OpenForm "F_avancement"
    Forms!F_avancement!afaire = rs_def.RecordCount
    rs_def.MoveFirst
     
     
    Do While Not rs_def.EOF
    Forms!F_avancement!reste = i
    DoCmd.SetWarnings False
    rame_def = rs_def("rame_complète").Value
     
    'If rame_def = 154 Then
    'lsq = 1
    'End If
     
    'date_heure = Format(rs_def("Date").Value & " " & rs_def("première"), "dd/mm/yy hh:mm:ss")
    date_heure = Format(rs_def("première"), "hh:mm:ss")
    'test = rs_def("Date").Value & " " & rs_def("première").Value
     
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " FROM Exploit_Z2N"
    'SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND (Exploit_Z2N.début_exploitation <= #" & DateAdd("n", -15, date_heure) & "#) AND (Exploit_Z2N.fin_exploitation >= #" & DateAdd("n", 15, date_heure) & "#) ;"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND ((début_exploitation = #" & DateAdd("n", -15, Exploit_Z2N.début_exploitation) & "#) and (date_heure <=  début_exploitation )) AND ((fin_exploitation = #" & DateAdd("n", -15, Exploit_Z2N.fin_exploitation) & "#) and (date_heure >=  fin_exploitation )) ;"
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
     
        rs_def.Edit
        rs_def.vu = True 'Mettre False pour un Reset
        rs_def.Update
     
        If rs_Exploit_Z2N.RecordCount > 0 Then
            rs_def.Edit
            rs_def.exploitation = True
            rs_def.Update
        End If
     
    rs_def.MoveNext
    i = i + 1
    Loop
    DoCmd.SetWarnings True
    DoCmd.Close acForm, "F_avancement"
     
     
    End Function
    Maintenant, voici le morceau qui me pose particulièrement problème:

    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
    date_heure = Format(rs_def("première"), "hh:mm:ss")
    'test = rs_def("Date").Value & " " & rs_def("première").Value
     
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " FROM Exploit_Z2N"
    'SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND (Exploit_Z2N.début_exploitation <= #" & DateAdd("n", -15, date_heure) & "#) AND (Exploit_Z2N.fin_exploitation >= #" & DateAdd("n", 15, date_heure) & "#) ;"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND ((début_exploitation = #" & DateAdd("n", -15, Exploit_Z2N.début_exploitation) & "#) and (date_heure <=  début_exploitation )) AND ((fin_exploitation = #" & DateAdd("n", -15, Exploit_Z2N.fin_exploitation) & "#) and (date_heure >=  fin_exploitation )) ;"
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
     
        rs_def.Edit
        rs_def.vu = True 'Mettre False pour un Reset
        rs_def.Update
     
        If rs_Exploit_Z2N.RecordCount > 0 Then
            rs_def.Edit
            rs_def.exploitation = True
            rs_def.Update
        End If
    Le truc, c'est que dans cette requête, la ligne en commentaire fonctionne, mais ne me permets pas d'obtenir ce que je souhaite d'un point de vue logique.

    La ligne juste en dessous, qui d'un point de vue logique donnerait (théoriquement) ce que je souhaite (afin de pouvoir avoir rs_exploit_Z2N.RecordCount > 0 quand celà doit être le cas, car oui il y'a des moments celà devra être vrai).
    Seulement, cette dite ligne ne fonctionne pas et me renvoie à cette erreur 424.

    Je suppose que celà vient de ma syntaxe, mais le problème c'est que je ne vois pas vraiment comment l'écrire autrement.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    La question est simple !

    Qui est Exploit_Z2N pour VBA ?

    Règle N°1 TOUJOURS TRAVAILLER EN OPTION EXPLICIT
    Règle N°2 UTILISER L'AUTOCOMPLETION !! Si la liste est vide c'est que l'objet n'existe pas !

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Exploit_Z2N est une table de ma base Access, elle contient des données quand je m'en sers ici.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    J'avais eu un souci à un moment, durant l'exécution de ce module, j'étais rebasculé sur un autre module portant le nom "Exploit_Z2N", j'ai donc modifié le nom de ce dernier module pour éviter des soucis de ce genre.

    Quant à vos 2 règles, je n'utilise pas la N°1 car je reprends le travail de quelqu'un d'autre qui a construit tous ses modules sans, et j'ai peur qu'en appliquant cette règle, je foute en l'air son travail qui, bien qu'étant très peu académique, fonctionne.

    Pour la n°2, j'utilise bien l'autocomplétion des instructions.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    La première règle aurait indiqué tout de suite l'origine du problème...

    Je suis cependant surpris que malgré l'utilisation de la seconde règle tu puisses utiliser le nom d'une table directement dans VBA sans que son absence dans la liste t'interpelle.

    Je ne doute pas que cela fonctionne, par contre je suis persuadé que la maintenance et l'évolution est une véritable torture. Au passage l'option Explicit s'applique module par module Donc de la à "foutre en l'air son travail" c'est un peu extrême.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Citation Envoyé par Warwolf Voir le message
    Exploit_Z2N est une table de ma base Access, elle contient des données quand je m'en sers ici.
    J'ai bien compris que c'était une table, mais pour VBA que représente-t-elle ? Est-ce un objet connu ? La réponse est là.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    J'ai presqu'envie de te dire oui, puisque j'arrive à appeler d'autres tables dans mes autres modules, et ça se passe sans soucis.

    Rien que la première requête de ce module appelle une table d'Access sans soucis.


    Après discussion avec mes collègues (dont notamment celui duquel j'ai récupéré le travail), mon embêtement à tout modifier n'est pas vraiment justifié, en fait, ma ligne en commentaire dans la seconde requête fonctionnait très bien (bien que pour moi son écriture ne traduise pas la logique dans ma tête).
    En fait le problème viendrait d'un autre module exécuté bien avant celui là.

    En fait, dans ce module précédant, je fais une extraction de données suivant une date, seul problème, c'est qu'il y'a une histoire de formatage de la date (américaine vs européenne), insouciant et novice que je suis, je continue sur le même format. Mon collègue m'a expliqué que, passé le 12 du mois, y'a pas de soucis, le formatage se corrige tout seul .... mais revenu au premier du mois suivant, bah le format américain prend le dessus ...

    Mais comment pouvais je le savoir ? Moi un novice arrivé le 14 du mois dernier ....

    Bref, je vais de suite corriger le formatage de cette fameuse date, ré-effectuer la procédure avec l'ancienne syntaxe du module que j'ai partagé ici, et je vous retiens au courant, j'espère honnêtement qu'il ne s'agit que de ça ....

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    En effet en VBA toutes les dates s'expriment en US/UK.

    Mais cela ne provoque jamais d'erreur sur la ligne et surtout pas une 424. Cette erreur provient de l'utilisation d'un objet non déclaré, en l'occurrence Exploit_Z2N qui sous cette forme Exploit_Z2N.début_exploitation est interprété comme un objet et sa propriété. C'est cela qui cause l'erreur 424 et rien d'autre. C'est ce que j'ai tenté de te faire appréhender, sans succès semble-t-il

    Il y a un tuto sur le débogage des requêtes en VBA, je pense que tu devrais l'étudier.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Bon, il semblerait que l'histoire de la date soit pas le problème.

    Mais cela ne provoque jamais d'erreur sur la ligne et surtout pas une 424. Cette erreur provient de l'utilisation d'un objet non déclaré, en l'occurrence Exploit_Z2N qui sous cette forme Exploit_Z2N.début_exploitation est interprété comme un objet et sa propriété. C'est cela qui cause l'erreur 424 et rien d'autre. C'est ce que j'ai tenté de te faire appréhender, sans succès semble-t-il
    Ouais, encore désolé si j'pige pas et que j'ai aucun déclic, je le rappelle, j'suis vraiment qu'un novice, de bien trop maigres "bases" scolaires (dont l'informatique n'est certainement pas la matière majeure).

    Je vais bien voir avec mes collègues si on trouve quelque chose, en tout cas, d'aucun ne me parlent de ce que tu cherches à me faire comprendre (c'est pas que je veux pas hein ), donc voilà, je suis un petit peu déchiré entre deux visions des choses totalement différentes (ils sont pas informaticiens de bases et tout leur boulot, ils l'admettent, ressemble plus à du bricolage maison que du VBA académique.

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Je me permets d'intervenir dans le sujet car 6 yeux valent mieux que 4 .
    A priori, c'est le "mot" date_heure dans ton critère qui n'est pas clair.
    C'est un variable, or tu l'intègres dans ton code SQL. Ce qui n'est pas le cas sur la ligne commentée vu que c'est un argument de la fonction DateAdd.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Ghana

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 109
    Points : 155
    Points
    155
    Par défaut
    Bonjour,
    Le (précieux) tuto en question.

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Le plus simple c'est de poser un point d'arrêt avant la ligne fatidique et de faire quelques tests dans la fenêtre d'exécution.

    En tapant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? Exploit_Z2N.début_exploitation
    VBA devrait te donner le message 424.

    Ceci seul est considéré comme une variable. Elle peut être de type natif (integer, long, string...) ou de type Objet (recordset, database...)

    Dans ce cas il n'y a aucun message d'erreur issu de la fenêtre d'Exécution, ni même du code si Option Explicit n'est pas actif.

    Du moment que tu ajoutes un point il (vba) considère que c'est un objet.

    Lorsque tu écris :

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND ((début_exploitation = #" & DateAdd("n", -15, Exploit_Z2N.début_exploitation) & "#) and (date_heure <=  début_exploitation )) AND ((fin_exploitation = #" & DateAdd("n", -15, Exploit_Z2N.fin_exploitation) & "#)

    Ce qui est en rouge est une String, donc n'est pas interprété par VBA (n'est pas du code VBA). Tout le reste c'est du VBA donc, interprété et soumis à erreur. Donc quand tu code ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateAdd("n", -15, Exploit_Z2N.début_exploitation)
    Tu as tout intérêt à ce que ce soit valide pour VBA. Car c'est lui, et non le moteur SQL, qui va l'interprété.

    Si tu avais codé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND ((début_exploitation = DateAdd('n', -15, Exploit_Z2N.début_exploitation))..."
    Cela aurait été interprété par SQL avec succès (syntaxe du dateadd() à vérifier).

    D'où le réel intérêt de "Option Explicit" qui n'est pas qu'académique mais réellement utile (incontournable).

    Ceci est expliqué dans le tuto.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Re-bonjour à tous,

    Merci pour vos conseils, je vais les essayer de ce pas !

    D'après mes collègues, le problème vient uniquement d'un soucis de formatage de date (certainement de date_heure).
    Car avant, avec la ligne commentée de la requête qui pose problème, celà marchait pour le mois dernier.

    Je vais essayer de trouver la solution, dès que c'est fait, je vous la communique !

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Bonjour,

    Je me permets d'intervenir dans le sujet car 6 yeux valent mieux que 4 .
    A priori, c'est le "mot" date_heure dans ton critère qui n'est pas clair.
    C'est un variable, or tu l'intègres dans ton code SQL. Ce qui n'est pas le cas sur la ligne commentée vu que c'est un argument de la fonction DateAdd.

    Cordialement,

    Et c'est pas faisable ? Parce que certes il va changer de valeur à chaque boucle, mais j'ai déjà réaliser ce genre de boucle, et ça fonctionnait sans soucis.

    Exemple:

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    sive2 = "SELECT  [Parc Z2N].Rame_Complète, defauts_NAT.Date"
    sive2 = sive2 & " FROM listing_defauts INNER JOIN (defauts_NAT INNER JOIN [Parc Z2N] ON defauts_NAT.Véhicule = [Parc Z2N].véhicule) ON listing_defauts.Code = defauts_NAT.code_defaut"
    sive2 = sive2 & " GROUP BY [Parc Z2N].Rame_Complète, defauts_NAT.Date, defauts_NAT.exploitation, listing_defauts.vrai_defaut"
    sive2 = sive2 & " HAVING (((defauts_NAT.Date)<=#" & Now() & "# And (defauts_NAT.Date)>=#" & Now() & "#-3) AND ((defauts_NAT.exploitation)=True) AND ((listing_defauts.vrai_defaut)=True))"
    Set rs_sive2 = CurrentDb.OpenRecordset(sive2)
     
     
    If Not rs_sive2.BOF And Not rs_sive2.EOF Then
        rs_sive2.MoveFirst
        Do While Not rs_sive2.EOF
     
            DoCmd.RunSQL "insert into test_alerte_Z2N(Rame,[Date Defaut]) values('" & rs_sive2("Rame_Complète").Value & "',#" & Format(rs_sive2("Date").Value, "mm/dd/yyyy") & "#)"
     
            rs_sive2.MoveNext
     
        Loop
    Else
    End If
     
    engin = "SELECT test_alerte_Z2N.Rame"
    engin = engin & " FROM test_alerte_Z2N"
    engin = engin & " GROUP BY test_alerte_Z2N.Rame"
     
    Set rs_engin = CurrentDb.OpenRecordset(engin)
     
    If Not rs_engin.EOF Then
    rs_engin.MoveLast
    n = rs_engin.RecordCount
     
     
     
     
    rs_engin.MoveFirst
        Do While Not rs_engin.EOF
        nom_fichier = ""            ' Ne tenez pas compte de ces lignes, elles concernent la fin de mon code, et pas ce morceau.
        nom_fichier2 = ""
        nom_fichier3 = ""
        nom_fichier4 = ""
     
     
     
    rame2 = rs_engin("Rame").Value
     
            sive3 = "SELECT  Test_Alerte_Z2N.rame, Test_Alerte_Z2N.[Date defaut], Min(defauts_NAT.Première) AS MinDePremière, defauts_NAT.code_defaut, Sum(defauts_NAT.Occurrences) AS SommeDeOccurrences, listing_defauts.Système, defauts_NAT.localisation, listing_defauts.[Criticité SNCF], [Parc Z2N].Ets_Propriétaire"
            sive3 = sive3 & " FROM Test_Alerte_Z2N INNER JOIN (listing_defauts INNER JOIN (defauts_NAT INNER JOIN [Parc Z2N] ON defauts_NAT.Véhicule = [Parc Z2N].véhicule) ON listing_defauts.Code = defauts_NAT.code_defaut) ON (Test_Alerte_Z2N.[Date defaut] = defauts_NAT.Date) AND (Test_Alerte_Z2N.Rame = [Parc Z2N].Rame_Complète)"
            sive3 = sive3 & " GROUP BY test_alerte_Z2N.rame , Test_Alerte_Z2N.[Date defaut], defauts_NAT.code_defaut, listing_defauts.Système, defauts_NAT.localisation, listing_defauts.[Criticité SNCF], [Parc Z2N].Ets_Propriétaire"
            sive3 = sive3 & " HAVING ((test_alerte_Z2N.rame like '" & rame2 & "') AND (listing_defauts.Système= '" & "SIV ET SAE" & "'))"
            Set rs_sive3 = CurrentDb.OpenRecordset(sive3)
     
                If Not rs_sive3.BOF And Not rs_sive3.EOF Then
                    rs_sive3.MoveFirst
                    Do While Not rs_sive3.EOF
     
     
                    DoCmd.RunSQL "insert into test_alerte_Z2N_2(Rame,[Date Défaut],[Première heure défaut],Système,[Code défaut],Occurrences, Localisation, Criticité,[Ets Propriétaire]) values('" & rs_sive3("Rame").Value & "',#" & Format(rs_sive3("Date defaut").Value, "mm/dd/yyyy") & "#,#" & Format(rs_sive3("MinDePremière").Value, "hh:mm:ss") & "#,'" & rs_sive3("Système").Value & "','" & rs_sive3("code_defaut").Value & "'," & rs_sive3("SommeDeOccurrences").Value & ",'" & rs_sive3("localisation").Value & "'," & rs_sive3("Criticité SNCF").Value & ",'" & rs_sive3("Ets_propriétaire").Value & "')"
     
                    rs_sive3.MoveNext
                    Loop
                Else
                End If
     
     
     
    '... le code se poursuit, mais c'est le morceau en question ici.

    Là j'utilise bien ma variable "rame2" dans ma requête SQL, et ce code s'exécute bien.
    Bon, je l'utilise en tant que condition, je ne sais pas si ça change grand chose, mais bon.

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Loufab,

    avec ce que tu as indiqué, j'ai changé quelques petites choses

    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
    Function controle_maintenance_Z2N_modif()
     
    df = Format(Now(), "mm/dd/yyyy")
    i = 1
    Dim date_heure As Date
    Dim début_exploitation As Date
    Dim fin_exploitation As Date
     
    SQL_def = "SELECT [Parc Z2N].rame_complète, defauts_NAT.[Date], defauts_NAT.première, defauts_NAT.vu, defauts_NAT.exploitation FROM [Parc Z2N] INNER JOIN defauts_NAT ON [Parc Z2N].véhicule = defauts_NAT.Véhicule WHERE defauts_nat.vu = false and defauts_nat.[date] < #" & df & "#;" '[WHERE defauts_nat.vu=True] pour un reset
    Set rs_def = CurrentDb.OpenRecordset(SQL_def)
    rs_def.MoveLast
    DoCmd.OpenForm "F_avancement"
    Forms!F_avancement!afaire = rs_def.RecordCount
    rs_def.MoveFirst
     
     
    Do While Not rs_def.EOF
    Forms!F_avancement!reste = i
    DoCmd.SetWarnings False
    rame_def = rs_def("rame_complète").Value
     
    'If rame_def = 154 Then
    'lsq = 1
    'End If
     
    'date_heure = Format(rs_def("Date").Value & " " & rs_def("première"), "dd/mm/yy hh:mm:ss")
    date_heure = Format(rs_def("première"), "hh:mm:ss")
    'test = rs_def("Date").Value & " " & rs_def("première").Value
     
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " FROM Exploit_Z2N"
    'SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND (Exploit_Z2N.début_exploitation <= #" & DateAdd("n", -15, date_heure) & "#) AND (Exploit_Z2N.fin_exploitation >= #" & DateAdd("n", 15, date_heure) & "#) ;"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND ((début_exploitation = DateAdd('n', -15, Exploit_Z2N.début_exploitation)) and (date_heure <=  début_exploitation )) AND ((fin_exploitation = DateAdd('n', -15, Exploit_Z2N.fin_exploitation)) and (date_heure >=  fin_exploitation )) ;"
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
     
        rs_def.Edit
        rs_def.vu = True 'Mettre False pour un Reset
        rs_def.Update
     
        If rs_Exploit_Z2N.RecordCount > 0 Then
            rs_def.Edit
            rs_def.exploitation = True
            rs_def.Update
        End If
     
    rs_def.MoveNext
    i = i + 1
    Loop
    DoCmd.SetWarnings True
    DoCmd.Close acForm, "F_avancement"
     
     
    End Function
    Je me retrouve maintenant avec comme soucis "trop peu de paramètres: 1 attendu"

    Je suppose que celà vient de mes variables "début_exploitation" et "fin_exploitation", je ne sais pas si je peux leur donner une valeur depuis ma requête SQL, mais le truc c'est que je ne sais pas non plus si j'peux leur affecter leur valeur avant cette requête sachant que j'ai besoin de données provenant d'une table d'Access ...

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " FROM Exploit_Z2N"
    'SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND (Exploit_Z2N.début_exploitation <= #" & DateAdd("n", -15, date_heure) & "#) AND (Exploit_Z2N.fin_exploitation >= #" & DateAdd("n", 15, date_heure) & "#) ;"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " WHERE (Exploit_Z2N.Rame Like '" & rame_def & "') AND (date_heure >=  DateAdd('n', -15, Exploit_Z2N.début_exploitation) ) AND  (date_heure <=  DateAdd('n', 15, Exploit_Z2N.fin_exploitation) ) ;"
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
    Bon, j'ai remodifié et enlever c'est variable, j'ai toujours ce problème de paramètre attendu, je suppose donc que c'est "Exploit_Z2N.début_exploitation" et "Exploit_Z2N.fin_exploitation" qui pose soucis.

    Tant que le recordset n'est pas établi, VBA ne peut trouver les valeurs correspondantes ?

    Est ce que mes conditions concernant le DateAdd peuvent être prises en compte après la requête ? avec un If ?

  17. #17
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Ghana

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 109
    Points : 155
    Points
    155
    Par défaut
    Bonjour,

    Avez-vous essayé une méthode du type :
    - vous créez une requête intégrant tous les calculs, tous les filtres, à l'exclusion du paramètre rame_def et l'appelez par exemple qry_Exploit_Z2N_rst.
    - vous y intégrez en amont les calculs de début_exploitation et fin_exploitation (vous les déclarez, mais je n'ai pas compris quand vous les calculiez)
    - dans votre code d'appel vous faites qqc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim strSQL as String
    strSQL = "SELECT qry_Exploit_Z2N_rst.* FROM qry_Exploit_Z2N_rst WHERE (Exploit_Z2N.Rame Like '" & rame_def & "')"
       Debug.print strSQL
    ' Vous testez la vraisemblance des résultats dans l'éditeur, et si c'est bon :
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(strSQL)
    '...
    PS : si ça fonctionne, vous pourriez éventuellement jouer sur le querydef en complétant la clause :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     strClause = "AND (Exploit_Z2N.Rame Like '" & rame_def & "')"
    Mais je m'avance peut-être ^^

  18. #18
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Bon, je vous fait un point d'avancement.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Function controle_maintenance_Z2N_modif()
    DoCmd.SetWarnings False
     
    df = Format(Now(), "mm/dd/yyyy")
    i = 1
    Dim date_heure As Date
    Dim début_exploitation As Date
    Dim fin_exploitation As Date
     
     
    SQL_def = "SELECT [Parc Z2N].rame_complète, defauts_NAT.[Date], defauts_NAT.première, defauts_NAT.vu, defauts_NAT.exploitation"
    SQL_def = SQL_def & " FROM [Parc Z2N] INNER JOIN defauts_NAT ON [Parc Z2N].véhicule = defauts_NAT.Véhicule"
    SQL_def = SQL_def & " GROUP BY [Parc Z2N].Rame_Complète, defauts_NAT.Date, defauts_NAT.Première, defauts_NAT.exploitation, defauts_NAT.vu"
    SQL_def = SQL_def & " HAVING (defauts_nat.vu = false) and (defauts_nat.[date] < #" & df & "#)" '[WHERE defauts_nat.vu=True] pour un reset
    Set rs_def = CurrentDb.OpenRecordset(SQL_def)
    rs_def.MoveLast
    DoCmd.OpenForm "F_avancement"
    Forms!F_avancement!afaire = rs_def.RecordCount
     
     
    rs_def.MoveFirst
    Do While Not rs_def.EOF
    Forms!F_avancement!reste = i
    DoCmd.SetWarnings False
    rame_def = rs_def("rame_complète").Value
     
            If Not rs_def.BOF And Not rs_def.EOF Then
     
     
                    DoCmd.RunSQL "insert into T_controle_maintenance(Rame_complète,[Date],Première) values('" & rs_def("Rame_complète").Value & "',#" & Format(rs_def("Date").Value, "mm/dd/yyyy") & "#,#" & Format(rs_def("Première").Value, "hh:mm:ss") & "#)"
     
            Else
            End If
     
     
     
    'If rame_def = 154 Then
    'lsq = 1
    'End If
     
    date_heure = Format(rs_def("Date").Value & " " & rs_def("première"), "dd/mm/yy hh:mm:ss")
    'début_exploitation = DateAdd("n", -15, Exploit_Z2N.début_exploitation)
    'fin_exploitation = DateAdd("n", 15, Exploit_Z2N.fin_exploitation)
    'test = rs_def("Date").Value & " " & rs_def("première").Value
     
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " FROM Exploit_Z2N INNER JOIN T_controle_maintenance ON exploit_Z2N.Rame = T_controle_maintenance.rame_complète"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " GROUP BY exploit_Z2N.Rame, exploit_Z2N.début_exploitation, exploit_Z2N.fin_exploitation, T_controle_maintenance.rame_complète"
    'SQL_Exploit_Z2N = SQL_Exploit_Z2N & " HAVING (Exploit_Z2N.Rame Like '" & rame_def & "') AND (Exploit_Z2N.début_exploitation <= #" & DateAdd("n", -15, date_heure) & "#) AND (Exploit_Z2N.fin_exploitation >= #" & DateAdd("n", 15, date_heure) & "#) ;"
    SQL_Exploit_Z2N = SQL_Exploit_Z2N & " HAVING (Exploit_Z2N.Rame Like T_controle_maintenance.rame_complète)" 'AND (date_heure >=  DateAdd('n', -15, Exploit_Z2N.début_exploitation) ) AND  (date_heure <=  DateAdd('n', 15, Exploit_Z2N.fin_exploitation) ) ;"
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
     
    rs_Exploit_Z2N.MoveFirst
    Do While Not rs_Exploit_Z2N.EOF
        rs_def.Edit
        rs_def.vu = True 'Mettre False pour un Reset
        rs_def.Update
     
        If (date_heure >= DateAdd("n", -15, rs_Exploit_Z2N("début_exploitation").Value)) And (date_heure <= DateAdd("n", 15, rs_Exploit_Z2N("fin_exploitation").Value)) Then
            If rs_Exploit_Z2N.RecordCount > 0 Then
                rs_def.Edit
                rs_def.exploitation = True
                rs_def.Update
            End If
        End If
    Loop
     
    rs_def.MoveNext
    i = i + 1
    Loop
    DoCmd.SetWarnings True
    DoCmd.Close acForm, "F_avancement"
     
     
    End Function

    Je sais que ça commence à être brouillon, mais je suis en train d'essayer des solutions un peu partout.

    Mon problème ici maintenant, c'est que pour la 2ème requête, j'ai besoin des données de la première, donc j'ai créer une table pour m'en servir, mais seulement derrière, mes instructions du type "rs_def.edit" etc, ne fonctionne plus pour cause "Erreur 3027: Mise à jour impossible, la base de données ou l'objet est en lecture seule" ...

    Seulement, à l'origine, ces instructions permettaient de modifier le champ "vu" et "exploitation" de ma table "defauts_NAT".

    Et je veux toujours que ça soit le cas, donc, je suis vraiment perdu là ...

  19. #19
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Messieurs, mesdames !

    J'en ai enfin fini avec ce calvaire, et je m'en excuse si finalement la solution ne correspond pas à vos conseils, c'est vrai que c'est délicat de proposer des solutions quand on a aucune idée de ce qui doit ressortir derrière, et en plus je dois super mal exprimer mes soucis !

    Cependant, je transmets quand même la solution qui fonctionne, il y'avait bien une histoire de formatage d'une date (mais étant complètement aveugle, je n'ai pas vu que cette dite date était en format américain et non européen), et une petite combine qui me permet de faire fonctionner ce que je visualisais en logique dans ma tête !

    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
    55
    56
    57
    Function controle_maintenance_Z2N()
     
     
    df = Format(Now(), "mm/dd/yyyy")
    i = 1
    Dim date_heure As Date
    SQL_def = "SELECT [Parc Z2N].rame_complète,defauts_NAT.rame,defauts_nat.vu,defauts_nat.[date],defauts_nat.première,defauts_NAT.exploitation FROM [Parc Z2N] INNER JOIN defauts_NAT ON [Parc Z2N].véhicule = defauts_NAT.Véhicule WHERE defauts_nat.vu = false and defauts_nat.[date] < #" & df & "#;" '[WHERE defauts_nat.vu=True] pour un reset
    Set rs_def = CurrentDb.OpenRecordset(SQL_def)
    rs_def.MoveLast
    DoCmd.OpenForm "F_avancement"
    Forms!F_avancement!afaire = rs_def.RecordCount
    rs_def.MoveFirst
     
     
    Do While Not rs_def.EOF
    Forms!F_avancement!reste = i
    DoCmd.SetWarnings False
    rame_def = rs_def("rame_complète").Value
     
    'If rame_def = 154 Then
    'lsq = 1
    'End If
     
    date_heure = Format(rs_def("Date").Value & " " & rs_def("première"), "dd/mm/yy hh:mm:ss")
    'test = rs_def("Date").Value & " " & rs_def("première").Value
     
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation From Exploit_Z2N WHERE (Exploit_Z2N.Rame like '" & rame_def & "')"
    'and  début_exploitation  < #" & DateAdd("n", -15, date_heure) & "# AND fin_exploitation  > #" & DateAdd("n", 15, date_heure) & "# "
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
     
    rs_def.Edit
    rs_def.vu = True 'Mettre False pour un Reset
    rs_def.Update
     
    If Not rs_Exploit_Z2N.EOF Then rs_Exploit_Z2N.MoveFirst
    Do While Not rs_Exploit_Z2N.EOF
     
     
        If (date_heure >= DateAdd("n", -15, rs_Exploit_Z2N("début_exploitation").Value)) And (date_heure <= DateAdd("n", 15, rs_Exploit_Z2N("fin_exploitation").Value)) Then
     
            rs_def.Edit
            rs_def.exploitation = True
            rs_def.Update
        Else
        End If
        rs_Exploit_Z2N.MoveNext
    Loop
     
     
    rs_def.MoveNext
    i = i + 1
    Loop
    DoCmd.SetWarnings True
    DoCmd.Close acForm, "F_avancement"
     
     
    End Function

    Et voici le code avec la requête qui m'a particulièrment extenué:


    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
    SQL_Exploit_Z2N = "SELECT Exploit_Z2N.Rame, Exploit_Z2N.début_exploitation, Exploit_Z2N.fin_exploitation From Exploit_Z2N WHERE (Exploit_Z2N.Rame like '" & rame_def & "')"
    'and  début_exploitation  < #" & DateAdd("n", -15, date_heure) & "# AND fin_exploitation  > #" & DateAdd("n", 15, date_heure) & "# "
    Set rs_Exploit_Z2N = CurrentDb.OpenRecordset(SQL_Exploit_Z2N)
     
    rs_def.Edit
    rs_def.vu = True 'Mettre False pour un Reset
    rs_def.Update
     
    If Not rs_Exploit_Z2N.EOF Then rs_Exploit_Z2N.MoveFirst
    Do While Not rs_Exploit_Z2N.EOF
     
     
        If (date_heure >= DateAdd("n", -15, rs_Exploit_Z2N("début_exploitation").Value)) And (date_heure <= DateAdd("n", 15, rs_Exploit_Z2N("fin_exploitation").Value)) Then
     
            rs_def.Edit
            rs_def.exploitation = True
            rs_def.Update
        Else
        End If
        rs_Exploit_Z2N.MoveNext
    Loop
    Cette solution, bien que n'étant surement pas ce à quoi vous vous attendiez, me donne bien ce que je veux

    A bientôt messieurs dames, je risque de revenir à vous pour d'autres soucis !

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

Discussions similaires

  1. Find - Erreur 424 - Objet requis
    Par wilfried_42 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/02/2009, 09h42
  2. erreur 424, objet requis
    Par Nessie37 dans le forum VBA Access
    Réponses: 8
    Dernier message: 08/01/2009, 12h20
  3. Erreur 424 objet requis
    Par davyvba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2008, 17h52
  4. erreur "424" Objet requis
    Par fifrelin_70 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 29/10/2007, 19h48
  5. Erreur 424 Objet requis sur connexion à Access
    Par darkian dans le forum ASP
    Réponses: 4
    Dernier message: 21/06/2006, 11h32

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