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

Requêtes et SQL. Discussion :

récupératioon des valeurs de l'enregistrement précedent


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 264
    Points : 108
    Points
    108
    Par défaut récupératioon des valeurs de l'enregistrement précedent
    Bonjour,
    j ai un formulaire avec des zones de textes indépendants alimentées par une table.
    Quand j appuie sur un bouton j aimerai pouvoir modifier certaines de ces valeurs via le formulaire.
    Donc le formulaire s ouvre avec les valeurs. Avec le bouton je peux modifier.
    Je modifie les cases voulus et avec un bouton je sauvegarde les nouvelles valeurs en créeant un nouvel enregistrement dans ma table.
    VOici le code essayé mais en vain :
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    Function MAJ_BaseAffaire(oform As Form)
     
     
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim oControl As Control
    Dim i As String
    Dim j As Integer
     
    Dim tampon As Variant
     
     
     
           Set db = CurrentDb
           Set rs = db.OpenRecordset("Référence LOC", dbOpenDynaset)
           'i = UCase(Forms![référence]![liste1])
           sSQL = "Select * From [Référence LOC]  WHERE [LOC]= '" & i & "'  ;"
           Set rs = db.OpenRecordset(sSQL)
          ' order by [Référence LOC].[Date de Réference] DESC
     
     
        rs.AddNew
     
        rs![Loc] = oform.liste1
     
        rs![Date de Réference] = oform.Texte108.Value
     
        rs![Axe long E1] = oform.Axe_long_E1.Value
        rs![Axe1 E1] = oform.Axe1_E1.Value
        rs![Axe2 E1] = oform.Axe2_E1.Value
        rs![ML long E1] = oform.ML_E1.Value
     
     
       rs![Axe long E2] = oform.Axe_long_E2.Value
       rs![Axe court E1] = oform.Axe1_E2.Value
       rs![Axe2 court E1] = oform.Axe2_E2.Value
       rs![ML E2] = oform.ML_E2.Value
     
       rs![Axe court E1] = oform.Axe_court_E1.Value
       rs![Axe1 court E1] = oform.Axe1_court_E1.Value
       rs![Axe2 court E1] = oform.Axe2_court_E1.Value
       rs![ML court E1] = oform.ML_court_E1.Value
     
       rs![Axe court E2] = oform.Axe_court_E2.Value
       rs![Axe1 court E2] = oform.Axe1_court_E2.Value
       rs![Axe2 court E2] = oform.Axe2_court_E2.Value
       rs![ML court E2] = oform.ML_court_E2.Value
     
       rs![Espace 90 E1] = oform.DDM_90_E1.Value
       rs![Espace 150 E1] = oform.DDM_150_E1.Value
       rs![Fsc1 E1] = oform.Fsc1_E1.Value
       rs![Fsc2 E1] = oform.Fsc2_E1.Value
     
       rs![Espace 90 E2] = oform.DDM_90_E2.Value
       rs![Espace 150 E2] = oform.DDM_150_E2.Value
       rs![Fsc1 E2] = oform.Fsc1_E2.Value
       rs![Fsc2 E2] = oform.Fsc2_E2.Value
     
       rs![Clr 1 E1] = oform.Clr_1_E1.Value
       rs![Clr 2 E1] = oform.Clr_2_E1.Value
     
       rs![Clr 1 E2] = oform.Clr_1_E2.Value
       rs![Clr 2 E2] = oform.Clr_2_E2.Value
     
     
      For j = 2 To 29
         If (rs.Fields(j) = Null) Then
        DoCmd.GoToRecord , , acPrevious
         tampon = rs.Fields(j)
        DoCmd.GoToRecord , , acNext
        rs.Fields(j) = tampon
        End If
     
        Next
     
     
     
     
     
       rs.Update
       rs.Close
       Set rs = Nothing
    Merci pour votre aide.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 104
    Points : 124
    Points
    124
    Par défaut
    Salut,
    Je ne comprends pas tout..
    Tu initialises 2 fois ton rs : une fois sur la table, une 2ème fois avec un filtre sur i : donc la 2ème écrase la première.
    En plus i n'est pas initialisée, donc il vaut 0.

    Dans ta boucle for j... j'ai l'impression que tu essayes de restaurer quelquechose, mais c'est louche. Tes docmd.gotorecord font bouger (comme tu n'as pas précisé) l'object courant (donc ton form) pas rs. Il faudrait jouer sur des rs.movenext ou moveprevious mais là c'est moyennement applicable vu que tu es au milieu d'un insert... Donc la boucle ne doit pas faire grand chose. Explique ce que tu voulais faire qu'on voie comment on peut t'aider.

    Mais ça n'explique pas forcément que l'insert ne marche pas... Tu as un message d'erreur ? Sur quelle ligne ? S'il traine un "on error resume next" il faudrait l'inhiber le temps de comprendre ce qui se passe.

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 264
    Points : 108
    Points
    108
    Par défaut récupération des valeurs de l'enregistrement précedent
    En fait c est simple dans ma table j ai la forme suivante :

    site A - date - elm1 - elm2 - elm3 - elm4- elm5-elm6 elm1 -elm7 -elm1

    paris 12/02/2004 - xxx- xxx- xxx- xxx- xxx- xxx- xxx- xxx- xxx-

    lille 10/02/2001 - yyy- yyy- yyy- yyy- yyy- yyy- yyy- yyy-yyy-

    Dans mon form je recupere cette valeur avec en selection la ville et la date.Ce sont des listes modifiables.
    Par exemple dans mon form, j'ai les infos de Paris , 12/02/2004 avec dans mes zones de textes tous les champs xxx.
    Maintenant avec un bouton je veux modifier les valeurs actuelles qui sont affichées via mon form. Par exemple je veux modifier uniquement le champ elm3 de Paris en mettant non plus xxx mais zzz avec une nouvelle date 29/05/08 mais je veux garder les mêmes valeurs pour les autres champs donc en fait je veux crée dans ma table un nouvel enregistrement pour avoir en fait tous les champs non modifiés sont copiés dans le nouvel enregistrement sauf elm3 qui est changé.

    site A - date - elm1 - elm2 - elm3 - elm4- elm5-elm6 elm1 -elm7 -elm1

    paris 12/02/2004 - xxx- xxx- xxx- xxx- xxx- xxx- xxx- xxx- xxx-

    lille 10/02/2001 - yyy- yyy- yyy- yyy- yyy- yyy- yyy- yyy-yyy-

    paris 29/05/08 - xxx- xxx- yyy- xxx- xxx- xxx- xxx- xxx- xxx-

    Voilà ce que j ai voulu faire avec mon code envoyé.

Discussions similaires

  1. Pré-remplir un formulaire des valeurs d'un enregistrement existant
    Par korentin83 dans le forum Salesforce.com
    Réponses: 3
    Dernier message: 15/05/2015, 08h52
  2. récuperer les valeurs de l'enregistrement précedents
    Par adelsunwind dans le forum IHM
    Réponses: 0
    Dernier message: 24/05/2008, 23h57
  3. recuperation des valeurs d un enregistrement
    Par sunwind dans le forum Access
    Réponses: 1
    Dernier message: 12/02/2007, 20h00
  4. NOT NULL enregistre des valeurs null
    Par tyberium dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/12/2006, 09h20
  5. Requête qui exclue des enregistrements suivants des valeurs
    Par paflolo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/02/2006, 17h38

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