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

IHM Discussion :

Access 97 vers 2000, transformation du critère de la requête


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut Access 97 vers 2000, transformation du critère de la requête
    Salut à tous,

    L'appli est passée de 97 à 2000, mais g un problème avec une requête ajout car le critère de 97 ne passe plus.

    En mode création, j'avais :

    Comme VG_FILTRE_PRORIETES("Dialogue filtre propriété/tbdf")

    J'ai modifié :

    Comme [Formulaires]![Dialogue filtre propriétés/tbdf]![VG_FILTRE_PROPRIETES]

    j'ai aussi essayé :

    Comme [Formulaires]![VG_FILTRE_PROPRIETES]![Dialogue filtre propriétés/tbdf]

    Mais à chaque fois, une fenêtre : Entrer la valeur du paramètre/Formulaire!Dialogue filtre apparait, si je saisi tbdf cela semble fonctionner(mais je n'en suis pas certain), cela dit sous 97 cette fenêtre n'apparraissait pas.

    Pour les adeptes du SQL...

    sous97:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO PARFOR03ACTU ( NUMFOR, PROFOR, DCREAR, NATFOR, CLASS, CULSPE, CONTEN, AGEFOR )
    SELECT DISTINCTROW PARFOR03.NUMFOR, PARFOR03.PROFOR, PARFOR03.DCREAR, PARFOR03.NATFOR, PARFOR03.CLASS, PARFOR03.CULSPE, PARFOR03.CONTEN, PARFOR03.AGEFOR
    FROM PARFOR03
    WHERE (((PARFOR03.PROFOR) Like VG_FILTRE_PROPRIETES("Dialogue filtre propriété/tbdf")));
    sous2000:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO PARFOR03ACTU ( NUMFOR, PROFOR, DCREAR, NATFOR, CLASS, CULSPE, CONTEN, AGEFOR )
    SELECT DISTINCTROW PARFOR03.NUMFOR, PARFOR03.PROFOR, PARFOR03.DCREAR, PARFOR03.NATFOR, PARFOR03.CLASS, PARFOR03.CULSPE, PARFOR03.CONTEN, PARFOR03.AGEFOR
    FROM PARFOR03
    WHERE (((PARFOR03.PROFOR) Like [Formulaires]![Dialogue filtre propriété/tbdf]![VG_FILTRE_PROPRIETES]));
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO PARFOR03ACTU ( NUMFOR, PROFOR, DCREAR, NATFOR, CLASS, CULSPE, CONTEN, AGEFOR )
    SELECT DISTINCTROW PARFOR03.NUMFOR, PARFOR03.PROFOR, PARFOR03.DCREAR, PARFOR03.NATFOR, PARFOR03.CLASS, PARFOR03.CULSPE, PARFOR03.CONTEN, PARFOR03.AGEFOR
    FROM PARFOR03
    WHERE (((PARFOR03.PROFOR) Like [Formulaires]![VG_FILTRE_PROPRIETES]![Dialogue filtre propriété/tbdf]));
    Merci

  2. #2
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    A prioris, ta deuxième solution est la bonne.

    Est-ce que ton formulaire VG_FILTRE_PRORIETES est ouvert ? Qu'est-ce que tu as dans le contrôle Dialogue filtre propriété/tbdf ? Est-ce que la valeur est compatible avec le champ PROFOR ?
    Une solution n'est valable que dans un contexte donné

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    non le formulaire VG_FILTRE_PROPRIETE n'est pas ouvert lors de cette procédure, en fait ce formulaire sert ailleurs. Mais ici la procédure est une macro qui fait tourner un certain nombre de requêtes.

    Moi ce que je comprends (ce n'est peut être pas ça) c que celui qui a écrit cela voulait que la sélection se fasse comme dans VG_FILTRE_PROPRIETE

    Je suis allé ouvrir ce formulaire en mode création et g récupéré sa pour la liste modifiable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCTROW PARCAD02.PROPRI FROM PARCAD02 ORDER BY PARCAD02.PROPRI
    Est-ce bien la réponse à ta question?

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    moi je ne veux pas que la fenêtre : Entrer la valeur du paramètre/Formulaire!Dialogue filtre s'affiche, tout doit se calculer seul

  5. #5
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    Il faut que ton formulaire soit ouvert si tu veux que la valeur qu'il contient soit utilisée.

    Sinon, il faut utiliser une fonction qui retourne la valeur qui t'interesse, mais cela réclame un peu de VBA.

    Yvan
    Une solution n'est valable que dans un contexte donné

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    apparemment VG_FILTRE_PROPRIETES est également une fonction...

    à voir ce qu'il y a dans cette fonction, sans doute qu'elle lisait le champ du formulaire et que s'il était fermé elle faisait autre chose...

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    une fonction... Commed du code?? je ne suis pas allé voir, j'irais alors, mais normallement le code ne se modifie pas entre 97 et 2000, si?
    ouïe, aïe, aïe

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    mais avant ça marchait, c ça que je ne comprends pas, et g vérifié y'a bien un code VG_FILTRE
    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
    Option Base 0
    Option Compare Database   'Utilise l'ordre de la base pour les comparaisons de chaînes
    Option Explicit
     
    Function VG_FILTRE_PROPRIETES(pnomformulaire As String) As String
     
    Dim li       As Integer
    Dim lnombre  As Integer
    Dim lcritere As String
     
    lcritere = "*"
    lnombre = Forms.Count
    If lnombre > 0 Then
      li = 0
      Do
        If Forms(li).Name = pnomformulaire Then
          lcritere = Forms(pnomformulaire)![VG_PROPRIETE]
          li = lnombre
        Else
          li = li + 1
        End If
      Loop While li <> lnombre
    End If
     
    VG_FILTRE_PROPRIETES = lcritere
     
    End Function
    merci pour votre aide

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    mais avant ça marchait, c ça que je ne comprends pas
    mais avant, la SQL appelait la fonction et cet appel a été retiré de la version 2000...

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    LA PO COMPRIS ta remarque, mais que dois je changer dans le SQL pour qu'il appel à nouveau la fonction?? Suis novice moi, et dois bien avouer que je nage (en apnéee)

  11. #11
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    Vérifie si cette fonction existe toujours dans la version 2000.

    Vérifie également ce que retourne la fonction, avec qque chose genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Loop While li <> lnombre
    End If
     
    Debug.Print lcritere
     
    VG_FILTRE_PROPRIETES = lcritere
    Yvan
    Une solution n'est valable que dans un contexte donné

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Bah actuellemnt ce qu'il y a sur la version 2000 c ce que g expliqué plus au :

    requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO PARFOR03ACTU ( NUMFOR, PROFOR, DCREAR, NATFOR, CLASS, CULSPE, CONTEN, AGEFOR ) 
    SELECT DISTINCTROW PARFOR03.NUMFOR, PARFOR03.PROFOR, PARFOR03.DCREAR, PARFOR03.NATFOR, PARFOR03.CLASS, PARFOR03.CULSPE, PARFOR03.CONTEN, PARFOR03.AGEFOR 
    FROM PARFOR03 
    WHERE (((PARFOR03.PROFOR) Like [Formulaires]![Dialogue filtre propriété/tbdf]![VG_FILTRE_PROPRIETES]));
    et VB :
    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
    Option Base 0 
    Option Compare Database   'Utilise l'ordre de la base pour les comparaisons de chaînes 
    Option Explicit 
     
    Function VG_FILTRE_PROPRIETES(pnomformulaire As String) As String 
     
    Dim li       As Integer 
    Dim lnombre  As Integer 
    Dim lcritere As String 
     
    lcritere = "*" 
    lnombre = Forms.Count 
    If lnombre > 0 Then 
      li = 0 
      Do 
        If Forms(li).Name = pnomformulaire Then 
          lcritere = Forms(pnomformulaire)![VG_PROPRIETE] 
          li = lnombre 
        Else 
          li = li + 1 
        End If 
      Loop While li <> lnombre 
    End If 
     
    VG_FILTRE_PROPRIETES = lcritere 
     
    End Function
    Y'a tout là y'a rien d'autre à ajouter

  13. #13
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    et bien ajoute le debug.print comme indiqué ci-dessus.
    Regarde le résultat dans la fenêtre d'exécution.
    Une solution n'est valable que dans un contexte donné

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    En mode création, j'avais :

    Comme VG_FILTRE_PRORIETES("Dialogue filtre propriété/tbdf")

    J'ai modifié :

    Comme [Formulaires]![Dialogue filtre propriétés/tbdf]![VG_FILTRE_PROPRIETES]
    ben voilà, tu as retiré la fonction du SQL....

    pourquoi avoir changé le critère?
    c'est normal que ça ne marche plus

  15. #15
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    ben voilà, tu as retiré la fonction du SQL....

    pourquoi avoir changé le critère?
    c'est normal que ça ne marche plus
    Arkham46, je ne comprends pas ce que tu me dis, si j'ai changé la fonction c que ça ne marchait plus, je ne me serais pas pris la tête à changer sinon.
    Si je l'écrit comme c'était sous 97 ça bug encore plus.

    Par contre ypicot, j'avais pas vu la modif que tu proposais, milles excuses

  16. #16
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Ypicot,

    J'ai essayé d'ajouter Debug.Print mais en fait l'action échoue exactement comme avec l'ancien SQL dans 97:

    L'action a choué
    Nom macro = AutoExec.Index
    Condition=vrai
    Nom action=ouvrir requête
    Arguments= Saisie de PARFORO03 ACTU NUMFOR/PROFOR; feuille de données; Modification


  17. #17
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    Et qu'est-ce que tu as dans la fenêtre d'execution ?
    Une solution n'est valable que dans un contexte donné

  18. #18
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Comme fenêtre ouverte? C ça que tu me ddes? Bah en fait rien sinon un SIG (système d'information géographique)

  19. #19
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    Non, la fenêtre d'exécution est une fenêtre accessible à partir de l'environement VBA
    - tu vas dans le visual basic editor (ou tu ouvres un module, je ne sais plus exactement dans access 2000)
    - tu regardes si tu as une fenêtre qui s'appelle "exécution"
    - si ce n'est pas le cas, tu l'affiches (menu affichage)

    Yvan
    Une solution n'est valable que dans un contexte donné

  20. #20
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    si j'ai changé la fonction c que ça ne marchait plus
    ça je comprend bien mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![Dialogue filtre propriété/tbdf]![VG_FILTRE_PROPRIETES]));
    signifie que tu demandes la valeur du champ VG_FILTRE_PROPRIETES du formulaire Dialogue filtre propriété/tbdf

    alors que la fonction renvoyait le champ VG_PROPRIETE (et en plus gérait le cas où la formulaire est fermé)

    si tu veux le même comportement (fonctionne avec ou sans le formulaire ouvert) il faut essayer de faire fonctionner la fonction, ça devrait pas être bien compliqué

    Si je l'écrit comme c'était sous 97 ça bug encore plus
    ça veut dire quoi "ça bug encore plus"?
    c'est encore plus faux que quand c'est pas juste?

Discussions similaires

  1. [AC-2010] Convertir Access 2010 vers 2000
    Par Kevin80 dans le forum IHM
    Réponses: 7
    Dernier message: 06/05/2011, 10h11
  2. auto num lors conversion access 2 vers 2000
    Par f69815 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/12/2008, 16h52
  3. Réponses: 2
    Dernier message: 21/09/2006, 11h28
  4. Problème passage Access 97 vers 2000
    Par chris76 dans le forum Access
    Réponses: 7
    Dernier message: 28/03/2006, 11h32
  5. migration access 97 vers 2000
    Par niclalex dans le forum Access
    Réponses: 4
    Dernier message: 08/10/2005, 17h50

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