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

VBA Access Discussion :

Pb de champ : numéroauto


Sujet :

VBA Access

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Pb de champ : numéroauto
    bonjour tout le monde,
    mon problème est le suivant :
    j'ai un formulaire avec plusieurs boutons dont un qui permet d'importer une feuille excel en une table sous Access(ceci j'y arrive). Mais cette table n'as pas de clé primaire c'est pour cela que je souhaite qu' Access créé lui-même la clé primaire qui sera un champ automatique (=numéroauto).

    Es-ce possible??si oui, comment puis-je faire??

    Merci d'avance!!

  2. #2
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    lors de la création du champs mettre en type de données "numéro auto".

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    sui-je obliger de créer le champ??ya-t'il une fonction VB qui permettrait de le créer directement?? Si je le créé, il va se mettre en dernière place?? (je pense que ca seré mieu que la clé primaire soit devant donc fodré ke se champ se place en première place)
    comment crérai-tu ton champ numero auto de quel facon??(bien sur sous VBA mais en DAO ou en SQL...)
    merci d'avance!!

  4. #4
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    attend dis moi, ta table est vide de toutes données?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    attend je te rexplique!!
    je dois créer une table à l'aide d'une feuille excel(c'est de l'importation donc jusque là pas de souci). La feuille Excel est rempli avec d'autre champ.
    Lorsque j'effectue mon importation, je n'est pas de clé primaire donc j'aimeré créer une clé primaire ce qui signifie que mon champ de type NumeroAuto sera la clé primaire. Mon problème est exactement celui que j'arrive pas à créer un champ de type NumeroAuto et qu'il soit clé primaire et pourquoi pas(même je préférerai) qu'il soit en première place.
    Jespére t'éclairer plus sur mon problème.
    merci quand même de ton aide!!

  6. #6
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    la création de la table est faite en code et s'enclenche avec ton document exel, la table se crée puis se remplit avec les données exel, c'est ça?

    Ou

    Tu crés ta table en mode création puis tu la remplis par le code avec les données exel?

    Si c'est la première façon je suis dans l'incapacité de t'aider, j'attend moi même des informations sur la création de table en code, si c'est la deuxième méthode, je dois pouvoir t'aider, c'est assez simple grace au mode création.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    bonjour, dsl j'ai pas pu te répondre plutôt!!
    donc en faite moi je veux que ma table se cré grace au donnée Excel. Suis entrain de réfléchir et voir si jpe pas créer la table et la clé primaire avant d'insérer les donnée Excel, jte tien au courant de ma reflexion!!LOL.

    Par contre pour créer une table en code VBA je peux t'aider si tu veux, c'est pas bien compliqué!!

    et toi peut-tu m'aider dans mon problème??


  8. #8
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    si tu peux créer la table avant ton problème sera réglé sinon j'ai peut etre bien le meme problème, je suis en train de faire mon code pour la création d'une table et je me pose la question que vas me dire VBA si je ne met pas de clé primaire, car...ba oui en fait on est sur le meme dilemne, peut être en créant soit même une incrémentation

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    ben j'ai essayé de créer notre table avec juste le champ en NuméroAuto puis importer les autres champs c'est à dire mes données de la feuille Excel mais il ne veut pas c'est à dire qu'il me dit qu'une erreur est intervenu lors de l'importation : surement car il y a un champ dans la table qui n'existe pas dans le fichier Excel!! (j'ai essayé manuellement pour voir si c'étais possible)
    Donc à mon avi on a pas le choix c'est à dire qu'on es obliger d'importer les données d'Excel en créant une table Access( ca je sait faire) sans dire qu'il y a une clé primaire. Puis créer le champ de type NuméroAuto. qu'en pense tu??
    Ton problème c'est que t'arrive pas à créer une table par VBA??

    voila, on va s'aider mutuellemen et peut-être qu'avant la fin de la journée oin sera heureux tout les 2!!LOL.

  10. #10
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    oui se serait bien, c'est d'ailleur le but de ce forum au final.

    Dans ton cas faudrait savoir si on créant tes champs il y a une option qui te permet de faire numéro auto sinon faut le faire avec un algo d'incrémentation en fait.

    Pour le miens j'en suis à la réalisation du code de création d'une façon différente de celle que j'avais fait avant et éfféctivement à aucun moment je n'indique de clé primaire je sais pas si ça va bloquer, sachant que moi c'est une table provisoire donc elle n'aura jamais plus d'un tuple dedans.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut si quelqu'un peux aider c'est toujours le bienvennue!!
    ok!! ben normalemen t'aura pas de souci si tu met pas de clé primaire mais si tu veux en mettre une je peux te donner un code qui t'aidera, si tu veux??
    ben je cherche depuis hier aprém commen faire pour insérer mon champ en type NuméroAuto mé je crois que c'est un compteur mais je sait pas du tout coimment faire!!

  12. #12
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    tu peux le mettre en integer et pour chaque insertion supplémentaire tu vas chercher le code du dernier auquel tu fais + 1 et tu envoi la somme dans la champs de la clé primaire, un petit algo d'incrémentation, le mieux est d'utiliser un recordset je pense. Ce code est rapide à faire et pas difficile si tu veux je peux t'aider à le faire.

    Je vais tester sans clé primaire et si j'ai un problème je te demanderais ton code pour clé primaire.

  13. #13
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Salut,
    comment insère tu tes données de Excel vers Access ?
    En code VBA DAO ? Car moi j'ai fait une exportation de données comme cela avec un champ numéro auto et je n'avais pas de problème.
    Peux-tu me montrer ton code pour voir un peux, ce sera peut être un peu plus simple pour t'aider.

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    ok pour mon code pas de souci, tu le demande quand tu veux!!si ta un pb pour autre chose demande j'essayeré aussi de t'aider cr on es la pour ca!!
    ben je veux bien que tu m'aide car sinon je vais casser l'ordi que l'entreprise me passe pour le stage!!MDR cr sa m'énerve de pas trouver!!enfin comme je dit souvent : CHE LA VIE!!
    donc revenons a nos moutons!!lol. comment puis-je faire avec un recordset??!!??

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    réponse à Lola :
    Ben pour transmettre une feuille Excel en une table sous Access je fais de la manière suivante :
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel7, _
    "OBSOLETE", _
    "X:\Base de donnée TOLAS\Fichiers pour mise à jour BdD\OBSOLETE.xls", True

    ça fonctionne impeccable ça, mon problème Lola c'est le champ de type NumérosAutos en tant que clé primaire dont je veux rajouter!! si ta une idée, fais signe lola!!
    merci d'avance!!

  16. #16
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Si tes données tu les transfert qu'une fois (parce que après ca te crée un problème) tu créé un champ numéroauto et après tu peux le déplacer en appuyant dessus (comme ca tu le met en première place comme tu le veux)

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    oui, sui complétement d'accord avec toi miss Lola06 mais bon j'ai quand même 2 problème surtout 1 :

    * ca serait mieu si il se met en première place dés le début enfin si on peux pas pas grave le temps que ca ne change rien!!
    * comment on fait pour créer un champ de type NumérosAuto??


    merci d'avance!!

  18. #18
    Membre très actif Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim rs as dao.recordset
    Dim code as integer
    set rs = application.currentdb.openrecordset("NOMTABLE", dbOpenDynaset)
     
    rs.movelast
    code = rs.fields("nomchamps").value +1
    ...
    ...
    ...
    rs.addnew
    rs.fields("nomchamps").value = code
    ...
    ...
    Le dim rs te permet de déclarer ton recordset
    le set rs = ... te permet de dire sur quelle table tu vas fonctionner

    les deux lignes rs.movelast... te permettent d'aller chercher ton dernier code et de créer le code du prochain (+1)

    le rs.addnew indique que tu rajoutes un nouveau tuple que le "nomchamps" aura la valeure code.

  19. #19
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Pour un champ NuméroAuto :
    • Tu vas dans ta table en mode création
    • Tu tape un nom de nouveau champ
    • Puis dans le type tu sélectionne NuméroAuto
    • Tu clique sur la ligne du numéo auto
    • tu défini ta clé primaire (il y a le dessin d'une clé dans la barre d'outils)

    Et voilà tu as ton champ en numéro auto

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    réponse à Kihmé Xs --> ben merci pour le code mais je comprend pas les 3 ti point que tu met?? quesqu'y va à leur place?? puis ce code va me permettre de faire quoi exactement?? (désolé je le comprend pas beaucoup!!désolé!!)


    réponse à lola06 --> merci pour ta réponse mais me prend pas non plu trop pour une quiche que même car ce que tu ma donné je sait le faire mais moi je veux que le champ de type NuméroAuto se cré automatiquement donc par code VBA d'ACCESS!!

    merci à vous 2 de bien vouloir m'aider!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Comment créer un champ numéroAuto en VBA Access
    Par nononono76 dans le forum Access
    Réponses: 4
    Dernier message: 01/01/2007, 12h19
  2. Premier numéro libre pour champ numéroAuto
    Par yancimer dans le forum Access
    Réponses: 8
    Dernier message: 11/09/2006, 11h43
  3. Utilisation avancée d'un champ numéroAuto
    Par mbzhackers dans le forum Access
    Réponses: 7
    Dernier message: 09/07/2006, 23h28
  4. Champ NuméroAuto
    Par gaucher dans le forum Access
    Réponses: 11
    Dernier message: 12/05/2006, 14h15
  5. mise à 0 d'un champ NuméroAuto
    Par thufir hawat dans le forum Access
    Réponses: 2
    Dernier message: 16/10/2005, 22h43

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