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

Sécurité Discussion :

Incohérence NuméroAuto dans une table


Sujet :

Sécurité

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 126
    Points : 49
    Points
    49
    Par défaut Incohérence NuméroAuto dans une table
    Bonjour,

    Voila mon problème :
    J'ai crée une BDD de facturation et dans ma table T_Factures, la numérotation a basculé subitement du chiffre 407 à 26542089 sans explication comme le montre la capture suivante.
    La seule chose est cette ligne avec des sigles chinois ???

    Nom : Capture RL.png
Affichages : 115
Taille : 258,9 Ko

    D'où pourrait provenir le problème et comment y remédier ?

    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 253
    Points : 6 545
    Points
    6 545
    Par défaut
    Salut
    Peut-être une sub() mal rédigée, si vous manipulez du vba dans votre bdd.
    Sinon pour répondre à la problématique, une contribution ici.
    Mais attention aux relations et clés étrangères !
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 126
    Points : 49
    Points
    49
    Par défaut
    Bonsoir hyperion13

    Il est possible qu'il y ait une erreur dans un code VBA mais comment la retrouver ?
    Les codes que j'ai pu ajouter sont souvent des morceaux de codes trouvés sur internet que j'ai adapté tant bien que mal à ma BDD...

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 253
    Points : 6 545
    Points
    6 545
    Par défaut
    Il y a probablement au moins une erreur, parce que faire un bon de quelques milliers de numéro
    Cherchez dans votre projet vba à quel moment vous manipulez ID_Facture
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 126
    Points : 49
    Points
    49
    Par défaut
    Le seul code où l'on retrouver ID_Factures est cette partie

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Private Sub Ouvrir_facture_Click()
    DoCmd.OpenReport "Factures", acViewPreview, , "ID_Facture=" & ID_Facture
     
    Dim fichier As String
    Dim base As Database: Dim requete As String
     
    ' Late Binding
    '1) déclaration des objets
    Dim client_msg As Object
    Dim message As Object
     
    'Dim client_msg As New Outlook.Application
    'Dim message As Outlook.MailItem
     
    '2) affectation des objets
    Set client_msg = CreateObject("Outlook.Application")
    Set message = client_msg.CreateItem(olMailItem)
     
    Dim Adresse As String
    Adresse = Nz(DFirst("Mail", "T_Clients", "ID_Client=" & ID_Client.Value), "")
     
    fichier = Application.CurrentProject.Path & "\archives_factures\locations\Facture " & Parent!NomPrenom.Value & " (" & ID_Facture.Value & ")" & ".pdf"
    DoCmd.OutputTo acOutputReport, , acFormatPDF, fichier, False
     
    Set base = Application.CurrentDb
    requete = "UPDATE T_Factures SET Facture_Loc='Facture " & Parent!NomPrenom.Value & " (" & ID_Facture.Value & ")" & ".pdf' WHERE ID_Facture=" & ID_Facture.Value
    base.Execute requete
     
    Set ligne = base.OpenRecordset("SELECT Mail FROM T_Clients WHERE ID_Client=" & ID_Client.Value, dbOpenDynaset)
    Adresse = Nz(ligne![Mail], "")
     
    ligne.Close
    base.Close
    Set ligne = Nothing
    Set base = Nothing
     
    If Adresse Like "*@*.*" Then
        If (MsgBox("Joindre la facture par mail  ?", vbYesNo) = 6) Then
     
            Set message = client_msg.CreateItem(olMailItem)
     
            With message
                .Recipients.Add Adresse
                .Subject = "Votre facture ROU'LIBRE"
                .Body = "Cher(e) client(e)," & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Veuillez trouver ci-joint votre facture de location ROU'LIBRE." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Cordialement." & Chr(13) & Chr(10) & "L'équipe ROU'LIBRE."
                .Attachments.Add fichier
                .Send
            End With
        End If
    End If
    Set client_msg = Nothing
    Set message = Nothing
     
    End Sub
     
     
    Private Sub Ouvrir_Contrat_Click()
    DoCmd.OpenReport "Contrats", acViewPreview, , "ID_Facture=" & ID_Facture
    End Sub

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 952
    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 : 11 952
    Points : 24 432
    Points
    24 432
    Par défaut
    Bonjour,

    J'ai déjà rencontré le problème des caractères chinois dans des tables. Je n'ai pas pu en trouver la cause ni le reproduire localement. Nous avons eu quelques pistes et notamment un copier/coller de texte en provenance de site internet ou encore la manipulation de champs mémo.

    Cependant je n'ai pas eu de problème de numéroAuto.

    Comme le dit Hyperion il faut traiter la table et les table annexes. Par contre te conseille de sauvegarder ta base puis de supprimer cet enregistrement et faire un compactage.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 126
    Points : 49
    Points
    49
    Par défaut
    Bonjour loufab,

    Je sauvegarde régulièrement mais comme je ne suis pas le seul à m'en servir, il arrive parfois que je sois plusieurs jours sans intervenir dessus.
    Par contre, j'effectue systématiquement un compactage à la fermeture de la BDD.
    ACCESS est tellement puissant mais aussi tellement complexe...
    J'ai cherché sur internet si quelqu'un pourrait y jeter un œil mais je ne trouve personne.

  8. #8
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 253
    Points : 6 545
    Points
    6 545
    Par défaut
    En mode création, vérifiez pour ID_Facture la Taille du champ et la Nouvelle valeur. Vous n'auriez pas (n° réplicat et/ou aléatoire) ?
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  9. #9
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 126
    Points : 49
    Points
    49
    Par défaut
    Bonjour hyperion13,

    La taille du champ est bien en entier long et les nouvelles valeurs en incrément.

  10. #10
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 253
    Points : 6 545
    Points
    6 545
    Par défaut
    Si vous voulez impérativement ré-initialiser ID_Facture, faites une sauvegarde de votre bdd.
    Ensuite faire :
    - une copie de la tbl_Facture
    - une copie de chaque tbl connexe qui contient ID_Facture (clé étrangère)
    - supprimer manuellement les relations
    Sur la tbl_Facture
    - renommer le champ ID_Facture par ID_Facture_tmp
    - modifier le type NumeroAuto en Numerique
    Dans un module standard, passez, puis exécutez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub resetIDFacture()
    CurrentDb.Execute "ALTER TABLE tbl_Facture ADD ID_Facture COUNTER"
    CurrentDb.Execute "ALTER TABLE tbl_Facture ALTER COLUMN ID_Facture COUNTER(1,1)"
    End Sub
    Sur une tbl_connexe
    - renommer le champ ID_Facture_fk par ID_Facture_fk_tmp
    - insérer un nouveau champ ID_Facture_fk de type Numerique
    - utiliser une req UpDate pour mettre à jour ID_Facture_fk.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  11. #11
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 126
    Points : 49
    Points
    49
    Par défaut
    Bonsoir hyperion13,

    Du coup, j'ai repris toutes mes factures et je les ai recrée manuellement.
    Ce que je crains, c'est que cela revienne avec cette histoire de sigles chinois...

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

Discussions similaires

  1. [AC-2003] Champ NuméroAuto dans une table
    Par Daejung dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/03/2010, 18h26
  2. Réponses: 4
    Dernier message: 28/12/2009, 22h42
  3. reprise d'un numéroauto dans une table
    Par rocuet dans le forum Modélisation
    Réponses: 1
    Dernier message: 09/08/2007, 08h03
  4. NuméroAuto dans une requête création table
    Par JimmyB dans le forum Access
    Réponses: 1
    Dernier message: 08/03/2006, 00h40
  5. Réponses: 3
    Dernier message: 10/02/2006, 16h48

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