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 :

[update] clef incluse dans un champ, MAJ de la clef (uniquement)


Sujet :

Access

  1. #1
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut [update] clef incluse dans un champ, MAJ de la clef (uniquement)
    Bonjours, alors, voila mon pb, j'ai un champ definit ainsi :

    1. année
    2. clef externe
    3. numéro d'intervention

    ex :
    je doit changer mon identifiant (cf : ici)

    cependant, ne connaissant pas du tout access, j'ai un peu de mal a trouver comment proceder...
    j'en susi là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE r_incidents_relais, r_correspondants 
    SET
    r_incidents_relais.NUMERO_CORRESPONDANT = r_correspondants.CODE_CORRESP2
     
    WHERE
    r_incidents_relais.NUMERO_CORRESPONDANT LIKE '##' &  r_correspondants.CODE_CORRESP & '#'
    ;

    mon principal pb vient du SET :
    comment reprendre les memes années et numero d'intervention que precedement?

    ps : si la reponse est dnas la faq, dvp.com est innaccessible depuis ce matin, pour moi, (seul dvp.net fonctionne, de temps en temps ^^)

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Problème de conception

    Ne serait t'il pas judicieux d'avoir les 3 champs dans la table puisqu'ils sont sémantiquement différents

  3. #3
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Tofalu
    Problème de conception

    Ne serait t'il pas judicieux d'avoir les 3 champs dans la table puisqu'ils sont sémantiquement différents
    HS :
    en fait, je doit migrer une base access2.
    je suis dependant de leur conception.
    c'est vrai que je pourrait migrer le tout en 3 champs differents, mais, mon contrat se termine dans 10 jours (je suis alternant).
    je ne sait pas ce qu'ils vont faire de mon travail, une fois partit (on est dans le flou pour cette base...)

    Une autre personne va reprendre le travail derriere moi, et, la base possedant un fichier d'aide bien fournit, je prefere eviter de changer le modele de données... si il ne le voit pas ca peut ete... dangereux...

    cependant, je peut leur fournir deux versions (une avec 3 champs), mais, ma prio est de fournir une migration des données terminée.


    en fait, s'il etait possible de lire un champ texte comme un tableau
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r_incidents_relais.NUMERO_CORRESPONDANT[1]
    ca me faciliterait la vie...
    je vient de parcourir la FAQ access, j'ai rien trouvé qui puisse m'aider.
    recupérer une partie d'une chaine fixe => est-ce une opération possible en requete SQL (de preference) sous access?
    et si oui, comment, svp?

  4. #4
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    j'ai rien trouvé sur la FAQ, mais, en decouvrant access, j'ai vu qu'on pouvait lancer des requetes par VBA...
    Je me lance dans cette voie...
    ...sans connaitre VBA :'(

  5. #5
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    mon contrat se terminant lundi, je voudrait bien leur laisser un travail propre, qu'un autre que moi pourra reprendre sans avoir a lui expliquer :
    tu peut changer les clef, mais, bal bla bla.

    donc, je voudrait vraiement leur fournir un outil permettant de migrer les clef de facon totale.

    hors, j'ai toujours mon pbp de clef etrangére concaténée avec d'autres info, quequ'un pourrait il me donner uen piste svp?
    car là... je suis paumé, l'aide microsoft, j'ay arrive pas, je regretet la doc php, windev, wxwidgets... là c'est intuitif... mais l'aide d'access... :'(
    a l'aide!

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,
    Citation Envoyé par hansaplast
    en fait, s'il etait possible de lire un champ texte comme un tableau
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r_incidents_relais.NUMERO_CORRESPONDANT[1]
    ca me faciliterait la vie...
    je vient de parcourir la FAQ access, j'ai rien trouvé qui puisse m'aider.
    recupérer une partie d'une chaine fixe => est-ce une opération possible en requete SQL (de preference) sous access?
    Pour les fonctions de manipulation des chaînes de caractères, toutes les fonctions VBA sont disponibles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Mid, Left, Right
    Trim, LTrim, RTrim
    Replace
    LCase, UCase
    InStr
    Pour extraire l'année (les 2 caractères de gauche):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(r_correspondants.CODE_CORRESP, 2)
    Pour extraire l'année et la convertir en un entier court:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CInt(Left(r_correspondants.CODE_CORRESP, 2))
    Pour extraire la clé externe (à partir du 3ème caractère, extraire une chaîne de 6 caractères):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mid(r_correspondants.CODE_CORRESP, 3, 6)
    Pour extraire la clé externe et la convertir en nombre entier long:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CLng(Mid(r_correspondants.CODE_CORRESP, 3, 6))

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Au fait, j'y pense... les caractères génériques en SQL JET c'est un peu particulier... tu ne dois pas utiliser le caractère dièse !

    Attention: la requête SQL n'est pas complète !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE r_incidents_relais, r_correspondants 
    SET r_incidents_relais.NUMERO_CORRESPONDANT = r_correspondants.CODE_CORRESP2
     
    WHERE r_incidents_relais.NUMERO_CORRESPONDANT LIKE '??' &  r_correspondants.CODE_CORRESP & '?'

    Les caractères génériques:
    >> le caractère '?' (point d'interrogation) représente EXACTEMENT UN CARACTERE,
    >> le caractère '*' (astérisque) représente 0 À N CARACTERES.

  8. #8
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    un grand, un gros, un rouge (?) merci a toi!

    ps : comment on fait un fetch en vba?
    (dsl, l'aide access, j'y arrive VRAIMENT pas :'( )

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par hansaplast
    ps : comment on fait un fetch en vba?
    Eh bien, puisque tu changes de sujet, tu dois poster une nouvelle question sur le forum.

    Pour ne pas te faire languir... j'imagine que tu fais allusion à une instruction de manipulation de curseur, présente dans certains dialectes SQL. Tu confirmes ?

    Avec le SQL du moteur de bases de données JET, il n'y a pas de telles instructions.
    On utilise une autre approche via des bibliothèques qui apportent toutes les fonctionnalités souhaitées pour manipuler des "jeux d'enregistrements" alias Recordset: soit DAO, soit ADO.

    Citation Envoyé par hansaplast
    (dsl, l'aide access, j'y arrive VRAIMENT pas :'( )
    Essaie voir la touche

  10. #10
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par =JBO=
    Eh bien, puisque tu changes de sujet, tu dois poster une nouvelle question sur le forum.
    c'est un peu la continuitée, puisque, pour ma question premiere, la solution est de faire la modif par "requete + programmation" bon, pares, continuer a poser des quesiton sur un topic marqué "resolut", j'avoue, je suis pas malin...
    mais, je veut pas trop déranger

    Citation Envoyé par =JBO=
    Pour ne pas te faire languir... j'imagine que tu fais allusion à une instruction de manipulation de curseur, présente dans certains dialectes SQL. Tu confirmes ?
    vi, c'est bien ca
    Citation Envoyé par =JBO=
    Avec le SQL du moteur de bases de données JET, il n'y a pas de telles instructions.
    On utilise une autre approche via des bibliothèques qui apportent toutes les fonctionnalités souhaitées pour manipuler des "jeux d'enregistrements" alias Recordset: soit DAO, soit ADO.
    je vait essayer dessus

    Citation Envoyé par =JBO=
    Essaie voir la touche
    encore faut il trouver l'instruction :p
    pour l'aide visualbasic, pas exemple, je tape Fetch, il me sort une liste de trois termes liés, dont
    FetchComplete
    , j'appuie sur "entrée, et là... rien, ca veut pas afficher...
    donc, je deprime :'(

    edit : pareil pour "Recordset", il me trouve pas mal d'aide dessus, mais ne veut afficher aucune page, une fois que je clique dessus... :'( (en gros, j'ai que le sommaire de l'aide qui marche Oo)

    ...et la page d'accueil de msdn qui veut pas se charger :'(

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Par hasard, ton aide ne serait-elle pas boguée ?
    Si c'est le cas, la FAQ Access peut t'aider:
    http://access.developpez.com/faq/?pa...eral#AffAide2k

    Citation Envoyé par hansaplast
    encore faut il trouver l'instruction :p
    pour l'aide visualbasic, pas exemple, je tape Fetch,
    [...]
    "Recordset"
    Tu devrais t'intéresser à la méthode OpenRecordset de la bibliothèque DAO
    (dés que ton aide sera réparée ).

    En attendant, déguste ce tutoriel sur DAO qui fera de toi un homme heureux...
    http://warin.developpez.com/access/dao/

  12. #12
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par =JBO=
    Par hasard, ton aide ne serait-elle pas boguée ?
    Si c'est le cas, la FAQ Access peut t'aider:
    http://access.developpez.com/faq/?pa...eral#AffAide2k


    Tu devrais t'intéresser à la méthode OpenRecordset de la bibliothèque DAO
    (dés que ton aide sera réparée ).

    En attendant, déguste ce tutoriel sur DAO qui fera de toi un homme heureux...
    http://warin.developpez.com/access/dao/
    a toi et a la

    c'est apperement bien ce pb d'aide (win 2000 access 2000, pas d'aide sur ADO, mais sur le reste oui) edit : j'ai eu la main sur un CD, apres copie des fichiers, l'aide marche ^^ (je le trouve netetment mieux mamintenant ^^)

    donc, encore un grand merci a toi

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

Discussions similaires

  1. [JavaScript] [FAQ][MAJ] Comment n'autoriser que la saisie de chiffres dans un champ texte?
    Par Bisûnûrs dans le forum Contribuez
    Réponses: 8
    Dernier message: 10/01/2012, 18h08
  2. [MySQL] doquery UPDATE SET avec rien dans le champ
    Par nils2rs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2008, 03h22
  3. D7 Voir des PDF inclus dans champ OLE
    Par zarbouine dans le forum Delphi
    Réponses: 15
    Dernier message: 01/04/2007, 13h17
  4. [JNI] : Obtenir les champs d'un objet inclus dans un objet
    Par jojo29 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/04/2006, 13h36
  5. [SQL] Update et soustraction dans un champ
    Par Artous dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/03/2006, 16h25

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