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 :

probléme code incrementation


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Par défaut probléme code incrementation
    Bonjour,

    je travail sous access et j'ai un formulaire qui permet d'ajouter un secteur, la table secteur est composé d'un numero et d'un nom. je veux que le numéro s'affiche automatiquement (mais sans auto incrementation) pour cela j'ai crée le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub N_SECTEUR_Click()
     
    Dim db As Database
    Dim rs As Recordset
    Dim sql As String
    Dim i As Integer
     
    Set db = CurrentDb
    sql = "Select MAX (N_SECTEUR) from SECTEUR"
    i = Val(sql)
    i = i + 1
    N_SECTEUR.Text = "" & i
    db.Close
    End Sub
    Mon code ne me renvois pas d'erreur mais il m'affiche pas la bonne valeur, il m'affiche 0 alors qu'il devrait afficher 52, ma requête ne contient pas d'erreur je l'ai tester. Je suis perdu je n'ai aucune idée de l'origine de cette erreur alors si vous avez une petite idée...

  2. #2
    Membre éclairé Avatar de ofinot
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 98
    Par défaut
    Bonjour,

    essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    N_SECTEUR = "" & i
    C'est comme cela qu'il faut faire pour attribuer une valeur à un contrôle.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Par défaut
    merci de me répondre, je viens d'essaier mais cela n'a rien changé, j'ai toujours le mauvais chiffre

  4. #4
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    Il t'affiche 0 parce qu'il n'y a aucun nombre dans ta requète ...
    Val retourne les nombres contenus dans une chaine de caractères

    J'ai du mal à comprendre ce que tu veux faire, et ton code ne fait pas grand chose

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Par défaut
    Merci de ta précision

    Le résultat est inchangé et je comprend pas pourquoi l'erreur serai sur cette ligne, c'est ma zone de texte de mon formulaire qui affiche le numero de secteur.

    En fait, j'ai un formulaire où l'utilisateur tape le secteur à creer et lorsqu'il clique sur la zone de texte "N_Secteur", le numéro du secteur s'affiche, il peut alors cliquer sur le bouton "Ajouter" pour ajouter le numéro de secteur.
    Pour avoir le numéro de secteur je vais chercher le n-secteur le plus éleve de la table et lui rajoute 1.Mais actuellment, il m'affiche le numéro de secteur 1 qui existe dans déja dans ma table

  6. #6
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    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
    15
    Private Sub N_SECTEUR_Click()
     
    Dim db As Database
    Dim rs As Recordset
    Dim sql As String
    Dim i As Integer
     
    Set db = CurrentDb
    sql = "Select MAX (N_SECTEUR) from SECTEUR;"
    Set rs = db.openrecordset(sql)
    i = rs.fields(0).Value
    Me.N_SECTEUR = i
    db.Close
     
    End Sub

  7. #7
    Membre éclairé Avatar de ofinot
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 98
    Par défaut
    Ah oui, effectivement j'avais regardé trop vite , le problème vient de ta requête ou plus exactement la façon dont tu l'exploites.

    La fonction val te retourne le nombre contenu dans une chaine de caractères, c'est une fonction de conversion. en clair si ta chaine est "25" elle te retournera 25. Dans ton cas étant donné que la chaine ne contient pas un nombre elle te renvoie 0 qui est je suppose la valeur par défaut.

    Pour une requête il faut utiliser un recordset :

    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
     
    dim db as database
    dim rs as recordset
    dim sql as string
    dim i as string
     
    set db = currentdb()
     
    sql = "Select MAX (N_SECTEUR) from SECTEUR;"
     
    set rs = db.openrecordset(sql)
     
    i = rs.fields(0).value
     
    etc ...

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

Discussions similaires

  1. Problème code VBA :)
    Par Freygolow dans le forum Access
    Réponses: 4
    Dernier message: 17/05/2007, 15h43
  2. Probléme code C
    Par conceicao dans le forum C
    Réponses: 12
    Dernier message: 23/01/2007, 13h44
  3. Réponses: 6
    Dernier message: 23/12/2006, 12h46
  4. code incrementation date
    Par hamadi_insat dans le forum Bases de données
    Réponses: 6
    Dernier message: 22/09/2006, 15h59
  5. [Problème code] Afficher/Masquer div
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2006, 14h18

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