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 :

Système d’incrémentation particulier


Sujet :

Access

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut Système d’incrémentation particulier
    Salut a tous!!

    Je suis un débutant et je n'y comprends pas grand chose......
    J'ai commencé à m'en servir il y a 2 semaines maxi. Je dispose d'Access 97 (en anglais). Ma base de données est dans une seule table avec une quinzaine de champs.
    Voila mon problème :
    J'ai crée un formulaire pour pouvoir faciliter la saisie de nouveaux enregistrements afin des intégrés dans ma base de données. La programmation ne me réussissant pas......
    J'aimerais en faire un pour que, à chaque nouvel enregistrement, mon numéro id s'incrémente de un, mais SURTOUT que je puisse le modifier si on s’aperçoit qu’un nouvel enregistrement a le même nom de client, qui lui, demande le même produit, qui lui aussi, appartient au même n° de lot : c’est à ce moment la que je voudrais qu’à la suite du n° id (dans le même champ) apparaisse un « A », par exemple : . 1542
    1542A.
    Puis de la même façon, si 1542A est déjà présent, 1542B jusqu’à D.
    Pour le moment, sous Microsoft Visual Basic, j’ai tapé ce petit morceau de programme qui ne fonctionne pas très bien et qui m’incrémente de 1, mais est-il « valable » par rapport à ce que je veux faire (voir ci-dessus) ?
    Private Sub OptionButton1_Click()
    Dim numerFA As Long
    Dim I As Long
    numerFA = I
    For I = 1 To 30000 (peu importe le nombre, ici 30000)
    I = I + 0
    MsgBox (I)
    Next I
    End Sub
    J’espère que je me suis bien expliqué. Je ne sais pas si ce que je demande est réalisable ou pas, je remercie d’avance ceux qui me répondront et qui prendront du temps sur mon (petit ?) problème.

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    bjr,

    inspire toi de la FAQ :
    http://access.developpez.com/faq/?pa...reerSonNumAuto

    (et n'oublie pas les balises de code (#) dans tes messages pour plus de lisibilité)

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    salut arkham46 !!
    Merci tout d'abord de m'avoir répondu. C'est sympa.
    Et de m'avoir indiqué un lien qui puisse m'aider à résoudre mon problème.

    Mais je ne pense pas que cela m'aide beaucoup pour 1542A, 1542B etc...
    A moins que oui (si c'est le cas excuse moi je ne suis qu'un novice).

    Encore merci

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Hé non, ça ne t'aide pas pour la lettre!

    Mais si déjà tu arrives à incrémenter ton compteur ce sera un bon début.
    Ensuite tu peux montrer ton code pour qu'on t'aide pour la suite.
    Il faudra faire une recherche dans la table pour vérifier si un enregistrement existe déjà avec le même client/produit/lot, et rajouter la lettre en l'incrémentant elle aussi.

    Par exemple avec la fonction DLookup pour faire la recherche d'enregistrement.
    Et par exemple aussi pour la lettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chr(asc("A")+VarIncrement)
    si VarIncrement = 1 alors ce code renvoit B
    si VarIncrement = 2 alors ce code renvoit C

    Cela semble faisable, en y allant petit à petit, surtout si tu débutes.

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Re Arkham46 !

    Il n'y aura pas besoin de faire une recherche dans la table pour savoir si il existe déjà le meme client/produit/lot car c'est le client qui appelle pour donner un COMPLEMENT à un enregistrement précédent : donc ça ne sera pas utile. Mais c'été bien pensé quand même.
    Sinon merci pour ta nouvelle fonction que tu m'as donné!

    Je vais me servir de tous les éléments que tu m'as donné et je vous répondrai dans un petit moment pour vous dire ce qu'il en est.

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Re.
    J'ai petit souci concernant le "BeforeInsert" du form pour les procédures évènementielles, il n'est pas écris, à moins qu'il ne soit écrit mais sous un nom différent? ou alors vu que je travaille sur Access97 il n'existe tout simplement pas?

    Quelqu'un peut-il m'aider?

    Merci d'avance.

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    c'est peut-être bien Avant Insertion tout simplement non??

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Le probleme c'est que je ne l'ai vu nulle part. Tu me dis BeforeInsert, mais tu as quelle version d'Access? Access 97, comme moi?
    lol A moins que je ne sache pas lire, mais je crois pas.

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    même en access 97 cet événement doit exister.

    mais es tu bien sûr d'être sur les propriétés du formulaire?

    (il faut cliquer sur le petit carré dans le coin en haut à gauche pour accéder aux propriétés du formulaire)

    sinon à partir du code tu peux aussi choisir l'événement dans les listes déroulantes en haut de la page.

  10. #10
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Re.
    Je suis extremement désolé. J'été pas au bon endroit. Je m'excuse. Et tu as raison.
    Effectivement, BeforeInsert est bel et bien présent dans les propriétés du form.
    Je ne peux vérifier si ce que tu m'as dis est bon, puisque j'en ai fini pour aujourd'hui. Je t'en ferais part demain matin dès que je pourrais.
    Encore merci.
    @++

  11. #11
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Rebonjour à toi Arkham46 et bonjour à tous !

    Est-ce quelqu'un pourrait me dire comment fait on pour intégrer la librairie DAO dans ma fonction? Et faut-il que j'écrives le code de réinitialisation?

    De plus, a quel moment je dois taper la fonction DLookup pour la recherche d'enregistrements?

    Merci d'avance.

  12. #12
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Je viens de trouver pour les librairies, ça c'est bon.

    Par contre je ne sais pas à quel endroit dans le code il faut intégrer la partie concernant la fonction DLookup.
    Voilà, merci d'avance à tous ceux qui m'aideront.

  13. #13
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Salut c'est encore moi !

    Etant donné que mon niveau en programmation est assez faible, est-ce que quelqu'un pourrait m'expliquer ce code (le plus précisément possible) svp :

    Private Sub Form_BeforeInsert(Cancel As Integer)
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(Me.RecordSource, dbOpenSnapshot)
    If rs.EOF Then
    Me!Num = 1
    Else rs.MoveLast
    Me!Num = rs!Num + 1
    End
    Ifrs.Close
    Set rs = Nothing
    End SubDe plus j'aimerai savoir à quel endroit dans ce code je dois placer le morceau de code avec la fonction DLookup (voir plus haut, #4).

    Merci d'avance.

Discussions similaires

  1. Système de tags un peu particulier
    Par Overstone dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/07/2010, 18h59
  2. Système d'équation de matrices un peu particulier
    Par CarolinePeroni dans le forum Mathématiques
    Réponses: 3
    Dernier message: 18/01/2010, 15h35
  3. Système de préchargement particulier
    Par codefalse dans le forum Flash
    Réponses: 6
    Dernier message: 08/06/2007, 17h56
  4. [Système] Lien valide pour contexte particulier
    Par hpl76 dans le forum Langage
    Réponses: 3
    Dernier message: 12/01/2007, 16h34
  5. système incrémentation inédit
    Par pascal913 dans le forum Access
    Réponses: 23
    Dernier message: 11/07/2006, 14h31

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