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

VB 6 et antérieur Discussion :

Mise à jour d'un enregistrement


Sujet :

VB 6 et antérieur

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

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 29
    Points
    29
    Par défaut Mise à jour d'un enregistrement
    Bonjour à tous,

    Pour bien faire....

    Je dispose d'une base de donnée Access dans laquelle sont enregistrer diférentes donnée dont un champ "OF" (un numéro unique).

    Je réalise l'affichage des 5 derniers enregistrement dans un MSHFlexgrid et on me demande de faire en sorte que si un OF n'a pas été correctement saisie (erreur de saisie) je doit effectuer une mise à jour de la ligne de ma base.

    (Si c'est un peu confu je peut me réexprimer)

    Donc pour l'instant je test si l'OF (saisie dans un textbox) et le champ OF de ma bdd son identique pour effectuer une mise à jour ou pas.

    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
     Do While Not tb.EOF = True     'temps qu'on est pas a la fin du fichier
        If Text2.Text = tb!OF Then  'test de l'OF
          reponse = MsgBox("Mise à jour de l'enregistrement :" & Chr(10) & Chr(13) & "cliquer sur <OK> ", 1, "Avertissement")
          If reponse = 1 Then
            tb.Edit
            up = False
            Call enregistrer     'Enregistrement dans la bdd
            ligne = MSHFlexGrid1.Row
            Call affichegrid(ligne)
            Exit Sub
          End If
          Exit Sub
        End If
        tb.MoveNext    'Linge suivant
      Loop
    Comme je peut le remarque si mon of est le même et que je change d'autre champs pas de pb ca me fait une mise a jour de mon enregistrement mais si je change l'OF, ca ne rentre aps dans ma condition et donc création d'une nouvelle ligne dans ma bdd.

    Si Quelqu'un peut m'aider !!!

    Merci

    TH

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Premiere remaque, tu devrais mettre des balises CODE pour delimiter la portion code de ton post, c'est nettement plus clair pour les lecteurs
    Deuxieme remarque, c'est quoi la question ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Bonjour,

    1- pourquoi récupérer et tenter de traiter le résultat d'une MsgBox contenant 1 seul bouton "OK" ? (F1 sur "MsgBox")

    2- plutôt que de boucler sur tous les enregistrements, DAO t'offre une propriété "Index" qui te permettras d'accéder directement à ta ligne (F1 sur "Index" et "Seek")

    Comme je peut le remarque si mon of est le même et que je change d'autre champs pas de pb ca me fait une mise a jour de mon enregistrement mais si je change l'OF, ca ne rentre aps dans ma condition et donc création d'une nouvelle ligne dans ma bdd.
    3- là, je n'ai rien compris

    3- pense aux balises "[CODE]"

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Bon..... Alors voila dans un premier temps mon code avec les Balises (désolé piti oublit )
    Code du boutton d'enregistrement :
    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
     
    Private Sub Command1_Click()
    'Boutton enregistrer
      If Text2.Text = "" Then
        reponse = MsgBox("Saisissez un OF", vbOKOnly, "Saisie OF")
        Exit Sub
      End If
      up = True
    'Test d'existance de l'OF
      Do While Not tb.EOF = True     'temps qu'on est pas a la fin du fichier
        If Text2.Text = tb!OF Then
          reponse = MsgBox("Mise à jour de l'enregistrement :" & Chr(10) & Chr(13) & "cliquer sur <OK> ", 1, "Avertissement")
          If reponse = 1 Then
            tb.Edit
            up = False
            Call enregistrer
            ligne = MSHFlexGrid1.Row
            Call affichegrid(ligne)
            Exit Sub
          End If
          Exit Sub
        End If
        tb.MoveNext    'Linge suivant
      Loop
    'Fin test d'existance de l'of
      tb.AddNew
      Call enregistrer
    'Fin du test d'existance de l'OF
    End Sub
    Lorsque je lance mon programme :
    Pièce jointe 4191
    Admettons que l'OF "123456" ne soit pas bon et que donc je le remplace par "123455" puis que je clique sur "Enregistrer".

    Dans ma base de donnée j'aurais 2 lignes, l'une avec comme OF "123456" et l'autre avec "123455".
    Nom : modif.jpg
Affichages : 48
Taille : 8,9 Ko
    Ce qui ve na pas car je ne veu pas faire un nouvelle enregistrement mais une modification de celui qui ne me convient pas !!!

    Donc je pense qu'il faud supprimer l'enregistrement précédant et en créer un nouveau.

    Mais la question (pour Delbeke) est comment réalisé cette supprésion de l'enregistrement ?

    Merci
    TH

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Ouuppss pb avec ma premiere pièce jointe je la reposte !!
    Nom : Init.jpg
Affichages : 63
Taille : 99,0 Ko

  6. #6
    Membre actif Avatar de Jihnn
    Inscrit en
    Décembre 2005
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 330
    Points : 273
    Points
    273
    Par défaut
    Utilise le bouton éditer

    Tu devrais relire les règles, parce que tu te laisses aller sur plusieurs points importants...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    Je suis vraiment désolé et j'avoue ne pas avoir bien lu les règles, de plus il est vrai que je n'ai pas fait attention au boutton "Editer", j'ais pas trop l'habitude des forums faud dire.

  8. #8
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    D'apres ce que je comprends de ton code

    Au depart une valeur dans un textbox
    On lits les enregistrements jusqu'a ce que l'on trouve la valeur du textbox dans le champs OP
    -si on le trouve, on met a jour l'enregistrment trouvé et on quitte la boucle de lecture et la sub
    -si on le trouve pas, en sortie de boucle,on ajoute un enregistrement.

    Les ordinateurs ont la facheuse tendance a faire ce que l'on leur dit de faire, rarement ce que l'on voudrait qu'ils fassent lol

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 29
    Points
    29
    Par défaut
    lol c'est pas faux du tt mais bon je pense avoir trouvé la solution :

    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
     
    Private Sub Command1_Click()
    'Boutton enregistrer
      If Text2.Text = "" Then
        reponse = MsgBox("Saisissez un OF", vbOKOnly, "Saisie OF")
        Exit Sub
      End If
      reponse = MsgBox("VALIDER L'OF : " & Text2.Text, 1, "VALIDER L'OF")
      If reponse = 2 Then
        Exit Sub
      End If
      up = True
    'Test d'existance de l'OF
      Do While Not tb.EOF = True     'temps qu'on est pas a la fin du fichier
        If Text2.Text = tb!OF Then
          reponse = MsgBox("Mise à jour de l'enregistrement :" & Chr(10) & Chr(13) & "Cliquer sur <OK> " & Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Modifier l'OF :" & Chr(10) & Chr(13) & "Cliquer sur <Annuler> ", 1, "Avertissement")
          If reponse = 2 Then
            MsgBox ("Mise à jour annulé !!")
            Text2.Text = InputBox("Resaisissez l'OF", "Modif")
            If Text2.Text = "" Then
              Exit Sub
            End If
            tb.Delete
            tb.AddNew
            Call enregistrer
            Exit Sub
          End If
          If reponse = 1 Then
            tb.Edit
            up = False
            Call enregistrer
            ligne = MSHFlexGrid1.Row
            Call affichegrid(ligne)
            Exit Sub
          End If
          Exit Sub
        End If
        tb.MoveNext    'Linge suivant
      Loop
    'Fin test d'existance de l'of
      tb.AddNew
      Call enregistrer
    'Fin du test d'existance de l'OF
    End Sub
    Voila !!

    Merci encore !!

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

Discussions similaires

  1. mise à jour automatique des enregistrements
    Par laurent00 dans le forum IHM
    Réponses: 4
    Dernier message: 22/07/2008, 17h39
  2. [1.x] [crud] erreur lors de la mise à jour d'un enregistrement
    Par Mitaka dans le forum Symfony
    Réponses: 3
    Dernier message: 13/06/2008, 11h46
  3. Réponses: 0
    Dernier message: 19/02/2008, 11h35
  4. Mise à jour d'un enregistrement
    Par yagrasdemonde dans le forum Access
    Réponses: 6
    Dernier message: 08/03/2007, 22h32
  5. [D7][MySQL4.11][Débutant] Mise à jour d'un enregistrement
    Par birdytech dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/01/2007, 09h53

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