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

Access Discussion :

Débutant: erreur manque opérateur logique sur base du tutoriel de Cafeine


Sujet :

Access

  1. #1
    Candidat au Club
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Débutant: erreur manque opérateur logique sur base du tutoriel de Cafeine
    Bonjour à tous,

    J'ai un peu le même problème que Jrogron à savoir qu'il me fait une erreur "3075" (opérateur absent). Mon formulaire est basé sur le tutoriel de Cafeine (d'ailleur il est super ce tuto).

    En fait cette erreur n'apparaît que lorsque j'ai effectué des modifications autres que les changements de noms dans le code (par exemple lorsqu'un critère de recherche porte sur plusieurs colone dans la table). Dans le cas des responsable d'une tâche il y a trois résponsable par tâche et trois tâche possibles. Pour éviter de devoir faire une recherche par colone (et donc neuf dans ce cas-ci) et par soucis de gain de temps j'ai essayer de faire qu'un seul champ pour les neuf responsables, mais n'ayant aucune connaissance en programmation c'est plutôt mal barré

    Ma première question serait donc: est-ce possible? et, si oui, pouvez vous m'éclairer car pour moi tout ceci est très sombre ...
    Voici la partie du code concernant les responsables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If Me.chkResp Then
      If Me.cmbRechResp & "" <> "" Then
        SQL = SQL & "And Prospect!responsable tâche 1 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable tâche 1 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable 2 tâche 1 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!responsable tâche 2 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable tâche 2 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable 2 tâche 2 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!responsable tâche 3 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable tâche 3 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable 2 tâche 3 = '" & Me.cmbRechResp & "' "
      End If
     End If
    Pour le "Or" je ne suis vraiment pas sûr de moi, mais dans ma logique (je précise hein !! ) ça me paraît logique


    L'autre problème (et le dernier je vous rassure ) c'est au niveau de la recherche par date: ici aussi il y a trois date de rendez-vous mais on m'a demander de faire une recherche par plage de date (du .... au ....), mais la, je ne sais pas du tout comment faire, j'ai bien essayé avec des opérateurs logique

    Voici le code et comme vous vous en doutez et vous en appercevrez au premier coup d'oeuil, ça ne marche pas du tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If Me.chkDate Then
        SQL = SQL & "And Prospect!RDV 1 >= " & Me.txtRechDu & " "
        SQL = SQL & "Or Prospect!RDV 1 <= " & Me.txtRechAu & " "
        SQL = SQL & "Or Prospect!RDV 2 >= " & Me.txtRechDu & " "
        SQL = SQL & "Or Prospect!RDV 2 <= " & Me.txtRechAu & " "
        SQL = SQL & "Or Prospect!RDV 3 >= " & Me.txtRechDu & " "
        SQL = SQL & "Or Prospect!RDV 3 <= " & Me.txtRechAu & " "
     End If
    J'ai souvenir d'avoir vu quelque chose dans la FAQ mais je n'arrive pas à remettre la main dessus ...

    Merci beaucoup à tous ceux qui prendrons le temps de me lire et de repondre.

    PS: je suis désoler si parfois je n'ai pas été très clair (déjà que c'est pas forcement très clair dans ma tête) mais je termine mon stage aujourd'hui et j'aimerais avoir avancé un maximum (de toutes façon je leur ait dit que tant que c'était pas terminé je resterai dispo pendant mes vacs, vous me comprendrez donc si je vous dit que j'ai envi de terminer ça au plus vite ). De plus n'ayant aucune connaissance dans ces langages (ni dans d'autres que le html et le basic de ma calculette) je suis très loin d'avoir une quelconque idée.

    Encore merci à vous et à Cafeine pour son tuto

    Edit: j'ai modifié la syntaxe du deuxième code comme dans un post de Cafeine sur un autre sujet

    J'ai oublié de préciser que lorsque je clique sur le bouton débogage de la boite d'erreur il me renvoie sur cette ligne de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lblStats.Caption = DCount("*", "Prospect", SQLWhere) & " / " & DCount("*", "Prospect")
    alors que je ne vois pas du tout ce que cette ligne peut voir avec mon problème ...

    Je vien de m'apercevoir (grâce au lblStats) qu'avec les autres champs (Nom et Société) la requête était éxecutée mais en fait le résultat ne s'affiche pas dans la liste.

    Voici ce qu'Access me renvoit dans la liste au lieu des résultats:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CodProspect, Nom, Prénom, Société FROM Prospect Where Prospect!CodProspect <> 0 And Prospect!Nom like 'Carletti*'
    Si sa se trouve j'ai fait une erreur, toute bête, dans mon code SQL ou dans la synthaxe mais j'ai beau avoir vérifier plusieur fois je ne trouve pas. Donc si vous pouviez juste me guider un peu pour trouver l'origine de mon problème sa serai sympa.

  2. #2
    Membre régulier Avatar de vador972
    Profil pro
    Inscrit en
    Août 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 71
    Points : 81
    Points
    81
    Par défaut
    Salut, j'ai juste des petite suggestion au niveau de la synthaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    If Me.chkResp Then
      If Me.cmbRechResp & "" <> "" Then
        SQL = SQL & "[And Prospect!responsable tâche 1] = '" & Me.cmbRechResp & "' "
        SQL = SQL & "[Or Prospect!autre responsable tâche 1] = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable 2 tâche 1 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!responsable tâche 2 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable tâche 2 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable 2 tâche 2 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!responsable tâche 3 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable tâche 3 = '" & Me.cmbRechResp & "' "
        SQL = SQL & "Or Prospect!autre responsable 2 tâche 3 = '" & Me.cmbRechResp & "' "
      End If
     End If
    1°) Mets des crochets pour distinguer tes champs comme je viens de le faire à la ligne 3 de ton code
    2°) 'Me.cmbRechResp' est-ce une string ? car si ce n'est pas le cas il faut l'encadrer ainsi " $ Me.cmbRechResp & "
    3°)Enfin une requête SQL se termine par ';' donc :
    Si ta variable 'SQL' contient déjà un ';' en fin de chaine ... Aïe
    Sinon rajoût SQL=SQL & " ;" avant le premier 'End if'

    Bon courage !

  3. #3
    Membre régulier Avatar de vador972
    Profil pro
    Inscrit en
    Août 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 71
    Points : 81
    Points
    81
    Par défaut
    rectification
    2°) " & varialbe & " et non " $ varaible $ "



    désolé

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    pour résoudre le problème des intervalles de date, il faut regarder un autre tutoriel sur le débogage des requêtes en VBA :

    http://cafeine.developpez.com/access...el/debugprint/

    et en particulier le passage sur les types de données :
    http://cafeine.developpez.com/access...ugprint/#LVI-C

  5. #5
    Candidat au Club
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci à vous deux pour vos réponses, je reviendrai vous dire ce que sa donne dès que j'ai tester

    Edit: il me semble avoir déjà une ligne SQL = SQL & ";" mais je vais vérifier l'endroit où je l'ai placée

    Pour le 'Me.cmbRechResp' je ne l'ai pas déclarer comme String au début du code si sa peut aider

Discussions similaires

  1. [XL-2010] Gestion erreur ouverture fichier word sur base intranet
    Par kesimon63 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 31/03/2014, 10h56
  2. Réponses: 4
    Dernier message: 30/08/2006, 09h37
  3. [VB] (débutant) erreur accès base de registre
    Par bandit boy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/02/2006, 14h15
  4. Erreur apres restauration d'une base sur nouveau serveur
    Par tribune dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/02/2006, 16h54
  5. Réponses: 16
    Dernier message: 19/11/2005, 17h47

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