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 :

[Access 2003] Requete de mise à jour, problème pour mettre un @ dans les critères


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [Access 2003] Requete de mise à jour, problème pour mettre un @ dans les critères
    Bonjour à tous,


    j'essaie d'effectuer une requete de mise à jour en mode création de access, la requete enn mode sql ressemble à

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tblSSCRequest SET tblSSCRequest.Status = "Demande transmise à Monsieur Dupont"
    WHERE (((tblSSCRequest.[Adresse Email])="prenom.nom@provider.com"));

    Mon problème est que lors de l'execution de cette requete (via le mode création de access) j'obtiens le message d'erreur suivant
    dépassement dun champ numérique
    Après avoir vérifié, le problème vient de l'adresse mail. Malheureusement, le champ est assez grand pour contenir cette adresse. J'ai effectué quelques tests pour cerner le problème et en réalité, c'est le @ qui n'est pas apprécié dans la requete.

    J'ai donc essayé de formuler ma requete des manières suivantes

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tblSSCRequest SET tblSSCRequest.Status = "Demande transmise à "
    WHERE (((tblSSCRequest.[Adresse Email])="prenom.nom'@axa-im.com"));

    et

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tblSSCRequest SET tblSSCRequest.Status = "Demande transmise à "
    WHERE (((tblSSCRequest.[Adresse Email])="prenom.nom" & "@ & "axa-im.com"));

    Je n'obtiens pas de meilleur résultat. J'ai aussi essayé en "backslashant" le arobase mais je ne me susi rendu compte qu'on nne protège pas les caractères spéciaux ainsi dans le mode création de requete.

    J'ai beau chercher, je ne trouve pas de problème solution équivalent sur le web, mais je me dis que je dois quand même aps être le premier à faire une requete de MAJ avec comme critère une adresse mail

    SI vous avez des idées ou pistes de solution je suis preneur .

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    bonjour,
    il me semble que le terme STATUS est réservé dans SQL Access. Recommence en changeant le nom du champ en STATUT par exemple
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci de ta proposition, je vais regarder ça. ENtre temps j'ai fait d'autres recherches et en réalité ma table est une table liée à une list sharepoint. En recopiant cette table dans une table locale ma requete de maj fonctionne. Le problème est donc spécifique aux tables liés ou autables liés sharepoint.

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    J'ai essayé avec statut au lieu de status, mais le résultat est le même merci quand même.

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    ok,
    de mon côté, la requête suivante fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_FINAL.adresses_mail
    FROM T_FINAL
    WHERE (((T_FINAL.adresses_mail) Like "*@free.fr"));
    le dépassement du champs numérique pourrait indiquer qu'il y a plus de retours qu'access ne peut en accepter ?

    sinon, tes champs sont-il bien de type texte ?
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    EN fait il n'y a qu'une valeur à récupérer donc je ne pense pas que ça vienne de là. L'aide semble indiquer qu'il s'agit d'un dépassement du type :

    j'ai un champ de 20 caractères et je veux mettre un string qui en fait 30 dedans.

    Mes champs sont bien de type texte oui. Sinon ça aurait été trop beau

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    forcément, si ca dépasse
    tu limites donc ta requete au nombre maximum de caractères possible dans les chamsp
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    lol, je me suis mal exprimé,

    l'erreur dit que ça dépasse mais le champ fait 255 caractères et l'adresse mail bien moins que ça

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut


    tu peux nous envoyer tout ou partie de ta base stp ?
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  10. #10
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    j'ai voulu bidouiller mais j'obtiens un problème équivaleent en faisant ça :

    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
    Private Sub UpdateStatus()
        Dim sRequest As String
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
     
        Set db = DBEngine.OpenDatabase("D:\Documents and Settings\triou\Mes documents\creaCompte\sharepoint-v2.0.mdb")
        sRequest = "SELECT * FROM tblSSCRequest;"
        Set rst = db.OpenRecordset(sRequest, dbOpenDynaset)
     
        Do Until rst![Adresse Email] = Me.cbxEmailAddress
            rst.MoveNext
        Loop
     
        rst.Edit
        rst!Statut = "DemandeTransmise"
        rst.Update
        rst.Close
    J'en visage donc de :
    copier ma table liée à sharepoint dans une table temporaire
    updater la table temporaire en local qui elle ne pose pas de problème pour faire cet update
    recopier la table tmp dans ma table liée à sharepoint, (vérifier si ça marche j'en sais rien)
    supprimer la table tmp

    tout ça ne m'enchante guère mais bon

  11. #11
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Je pense que mon problème vient du fait que j'essaie de modifier un table Windows SharePoint Services lié à une liste sur un site sharepoint.

    J'ai essayé d'ajouter un enregistrement en vba comme suit

    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
        Set db = DBEngine.OpenDatabase("D:\Documents and Settings\triou\Mes documents\creaCompte\sharepoint-v2.0.mdb")
     
        sSQLSSC = "Select * From tblSSCRequest"
     
        Set rstSharepoint = db.OpenRecordset(sSQLSSC, dbOpenForwardOnly, dbReadOnly)
     
        Do Until rstSharepoint.EOF Or rstSharepoint![Adresse Email] = Me.cbxEmailAddress
            rstSharepoint.MoveNext
        Loop
     
        sSQLSSC = "Insert Into [tblSSCRequest]"
        sSQLSSC = sSQLSSC & "(tblSSCRequest.Edit, tblSSCRequest.[Adresse Email], tblSSCRequest.[Répertoires désirés], tblSSCRequest.[Entité SSB], tblSSCRequest.Statut, tblSSCRequest.Société, tblSSCRequest.Téléphone)"
        sSQLSSC = sSQLSSC & "values("
        sSQLSSC = sSQLSSC & "'" & rstSharepoint![Edit] & "',"
        sSQLSSC = sSQLSSC & "'" & rstSharepoint![Adresse Email] & "',"
        sSQLSSC = sSQLSSC & "'" & rstSharepoint![Répertoires désirés] & "',"
        sSQLSSC = sSQLSSC & "'" & rstSharepoint![Entité SSB] & "',"
        sSQLSSC = sSQLSSC & "'" & "Etape 2" & "',"
        sSQLSSC = sSQLSSC & "'" & rstSharepoint![Société] & "',"
        sSQLSSC = sSQLSSC & "'" & rstSharepoint![Téléphone] & "'"
        sSQLSSC = sSQLSSC & ");"
     
        DoCmd.RunSQL sSQLSSC
    j'obtiens une l'erreur suivante

    erreur d'execution 3073

    l'opération doit utiliser une requete qui peut etre mis à jour
    Du coup, je me demande si ne devrais pas migrer mon post dans la section vba pour savoir comment faire pour mettre à jour une table lié sharepoint en vba?

  12. #12
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    je passe lke post en délestage, parce que j'ai l'impression que le problème concerne de moins en moins le @ mais essentiellement de la modification de liste sharepoint via vba access, je vais donc formuler un autre post pour correspondre au problème

Discussions similaires

  1. [MySQL] Problème avec requete de mise à jour
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 31/07/2012, 01h01
  2. Réponses: 2
    Dernier message: 05/07/2011, 14h38
  3. problème pour mettre "<href" dans une string
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 04/12/2009, 22h18
  4. Réponses: 0
    Dernier message: 23/09/2009, 21h23
  5. Problème dans une requete de mise à jour
    Par marsupilami34 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/08/2007, 22h55

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