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 :

préaffichage (valeur par defaut) de champs dans un ss form en feuille de données


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut préaffichage (valeur par defaut) de champs dans un ss form en feuille de données
    Bonjour,
    En utilisant un record set je charge un sous formulaire en feuille de données.
    Ce que je veux c'est à la fin de la feuille de données dans le nouvel enregistrement à créer c'est avoir des valeurs par défaut pour certains champs qui correspondent aux valeurs affichées dans le dernier enregistrement affiché de telle manière que la saisie de l'utilisateur soit guidée.
    J'ai essayé diverses syntaxes sans succès j'utilise la propriété valeur par défaut de ma zone de texte.
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    =RechDom("MC_BD";"Me.[SFtbl_MaxCapProd].Form.Recordset")
    =RechDom("MC_CycleName";"tbl_MaxCapProd";"[ID]=Me.[SFtbl_MaxCapProd]![ID]-1")
    j'ai encore essayé plein d'autres choses et rien ne marche à chaque fois c'est #Erreur

  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 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,
    Le contrat d'utilisation de DefaultValue c'est fournir une valeur string.

    Si tu fournis simplement le résultat d'un rechdom() c'est une valeur mais pas un string.

    essaye plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.defaultvalue = """" & dlookup(...) & """"
    A noter que ceci a déjà été abordé ce mois-ci sur le forum, des fois une recherche vaut mieux qu'une longue attente.

    Cordialement,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Merci Loufab pour la promptitude,
    J'ai essayé et ça ne marche pas
    je cherche à renseigner cela dans les propriétés du controltext "valeur par defaut"
    quelle serait la bonne syntaxe ?
    Si tu savais ce que je lis sur ce forum ..... je passe plus de temps à lire qu'à programmer.
    Bien souvent l'information cherchée existe mais comme le pauvre ignare ne sait pas dire en jargon ce qu'il cherche, c'est parfois compliqué.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Puis-je voir ton code et dans quel évènement tu l'as placé ?

  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 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    J'ose espérer que tu n'as pas laisser cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =RechDom("MC_BD";"Me.[SFtbl_MaxCapProd].Form.Recordset")
    =RechDom("MC_CycleName";"tbl_MaxCapProd";"[ID]=Me.[SFtbl_MaxCapProd]![ID]-1")
    Si tu regardes le contrat d'utilisation de cette fonction et le tuto en rapport tu t'apercevras que ça n'est pas conforme à ses attentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[SFtbl_MaxCapProd].Form.Recordset
    d'une par ceci c'est du VBA alors que Rechdom() est une expression d'ihm. C'est totalement incompatible. De plus un me. dans un string reste le mot me. sans plus, il ne peut être interprété.

    Je te suggère plutôt de régler le defaultvalue au moment de la création du dernier record ou encore de faire une recherche avec la bonne syntaxe. Le 2ème paramètre doit être une source valide ; le nom d'une requête ou d'une table mais pas un recordset.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Ok on va reprendre à la genèse.
    Peut être que rechdom n'est pas approprié finalement.
    J'alimente un ss formulaire en mode feuille de données à l'aide d'un record set
    Mes champs ne sont donc pas indépendants.
    Pas de souci ça fonctionne, l'utilisateur peut modifier des champs dans les lignes affichées et peut ajouter des lignes à la fin, rien que de très normal.
    J'ai verrouillé certains champs pour qu'ils soient visibles mais non modifiables, ça aussi ça fonctionne correctement.

    Ce que je cherche à faire maintenant pour simplifier et sécuriser le travail de mon utilisateur c'est lorsqu'il souhaite ajouter un enregistement à cette feuille de donnée lui proposer dans certains champs des valeurs correspondantes qui sont dans l'enregistement précédent.

    Je pensais en utilisant rechdom dans valeur par défaut résoudre ma question.
    J'ai vu en surfant que certains travaillait sur Après Mise à jour.

    Pour répondre en partie à Loufab, je n'ai pas de requête et pas de table en jeu puisque mon ss formulaire est alimenté par le recordset.
    Quelle serait donc la stratégie à utiliser ?

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    En effet au moment de la création du record c'est l'événement Après Maj du (sous?) formulaire.

    Dedans tu y mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.MC_CycleName.value = """" & me.MC_CycleName.value & """"
    On en revient donc à la syntaxe première.

    Ps : tu ne peux pas utiliser de fonction de domaine avec des recordsets. Mais rien ne t'empêche de créer ta propre fonction qui le fait.

    Cordialement,

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    J'ai essayé cette solution dans la zone Après MAJ des propriétés.
    Rien ne s'affiche dans la cellule concernée, je peux saisir ce que je veux et quand je passe à la cellule suivante j'obtiens le message
    Test DataBase ne peut pas trouver la macro 'me'

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Dans ACCESS il y a 3 endroits bien particulier et cloisonnés :
    - L'ihm avec ces formulaires et états qui contiennent les propriétés
    - SQL avec les requêtes
    - et enfin VBA avec ses modules.

    Me est un mot clef VBA il n'est donc reconnu que dans VBA et NULLE PART AILLEURS.
    Le mettre dans les propriétés ou dans SQL ne sert donc à rien. Il faut le mettre dans le code VBA de cet évènement.

    Il me semble qu'il te manque les bases du fonctionnement d'ACCESS, tu devrais te procurer un bouquin généraliste sur le sujet (bible, pour les nuls...). Il existe également quelques rares ouvrages gratuits sur le net écrit par des universitaires (si si il n'y a pas que C++ ou Java dans ces milieux).

    Il y a la touche F1 qui donne de bonnes informations et qui fonctionne partout dans le logiciel, je sais que ça fait ringard d'appuyer sur cette touche mais même les habitués l'utilisent, le MSDN est également une bonne source de renseignement.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Je reste un peu sur ma faim avec ces réponses.
    Il est clair qu'on a toujours intérêt à se documenter et à s'instruire, mais une fois qu'on a dit cela on n'avance guère et je n'ai pas besoin de venir sur un forum pour m'entendre dire cela.

    Je n'ai fait qu'appliquer une suggestion proposée par le spécialiste après avoir expliqué le moins mal possible ce que je souhaitais faire, je suis dans le cadre de l'IHM.

    Je sais que loufab est un peu rude comme j'ai pu le voir dans plusieurs de ses réponses mais j'ai aussi mon caractère.

    Je vais donc continuer à chercher une solution avec ou sans aide et bien sûr quand j'aurai trouver je viendrai ici en faire part.

    Cordialement

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Je suis trop candide ! J'ai toujours le sentiment de pouvoir aider les autres mêmes s'ils y sont foncièrement opposés.

    Donc avec Cobaye13, je vais revêtir mon costume de casque bleu.

    Cordialement,

Discussions similaires

  1. Valeur par defaut des champs d'une table
    Par Cyrille36 dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/11/2011, 20h47
  2. Ajouter une valeur par defaut à un champ
    Par smooncef dans le forum Informix
    Réponses: 9
    Dernier message: 15/04/2008, 13h40
  3. donner une valeur par defaut à un champ file
    Par Davboc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/02/2006, 11h26
  4. Affecter valeur par defaut si champ vide
    Par uloaccess dans le forum Access
    Réponses: 5
    Dernier message: 09/01/2006, 17h12
  5. Réponses: 3
    Dernier message: 02/12/2005, 04h16

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