écrire dans une colonne d'une table suite a une condition.

Résolu
bithack Messages postés 143 Statut Membre -  
bithack Messages postés 143 Statut Membre -
Bonjour,
Suite a une boucle remplis de condition, je voudrai savoir comment écrire dans une colonne d'une table en vba. pour le moment j'utilise le code suivant pour écrire dans ma table
.fields("run") = run1 

le problème c'est que j'ai un message d'erreur :
" réference incorrect ou non qualifier"
donc je pense que ma solution n'est pas la bonne, si quelqu'un a une idée , je prend :)
merci par avance !!

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Montrez le code complet pour ecriture dans cette table svp
    0
    1. bithack Messages postés 143 Statut Membre 6
       
      bonjour voici mon code
      Sub runtype()
      Dim Jour As String
      Dim db As Database
      Dim rsdateres As DAO.Recordset
      Dim rsrun1 As DAO.Recordset
      Dim rsrun2 As DAO.Recordset
      Dim rsrun3 As DAO.Recordset
      Dim fld As DAO.Field
      Dim sSQL1 As String
      Dim sSQL2 As String
      Dim sSQL3 As String
      'Dim i As long


      'i = 1
      Jour = date
      MsgBox Jour

      Set db = CurrentDb

      sSQL1 = "SELECT date_resil FROM Dossier"
      Set rsdateres = db.OpenRecordset(sSQL1, dbOpenForwardOnly, dbReadOnly) ' Ouverture du Recordset
      MsgBox rsdateres

      sSQL2 = "select Run1 FROM calendrier"
      Set rsrun1 = db.OpenRecordset(sSQL2, bOpenForwardOnly, dbReadOnly)
      MsgBox rsrun1

      sSQL3 = "select Run2 FROM calendrier"
      Set rsrun2 = db.OpenRecordset(sSQL3, bOpenForwardOnly, dbReadOnly)
      MsgBox rsrun2

      SSQL4 = "select Run3 FROM calendrier"
      Set rsrun3 = db.OpenRecordset(SSQL4, bOpenForwardOnly, dbReadOnly)
      MsgBox rsrun3
      '1

      If rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun1!Run1 Then
      .Fields("run") = Run1

      ElseIf rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun2!run2 And rsdateres!date_resil > rsrun1!Run1 Then
      'If rsdateres < Jour And rsdateres < rsrun2 And rsdateres > rsrun1 Then
      .Fields("run") = run2

      ElseIf rsdateres!date_resil < Jour And rsdateres!date_resil < rsrun3!run3 And rsdateres!date_resil > rsrun2!run2 Then
      'If rsdateres < Jour And rsdateres < rsrun3 And rsdateres > rsrun2 Then
      .Fields("run") = run3

      ElseIf rsdateres!date_resil < Jour And rsdateres!date_resil > rsrun3!run3 Then
      'If rsdateres < Jour And rsdateres > rsrun3 Then
      .Fields("run") = pas - résilier
      End If
      End If
      End If
      End If



      'rst.Close ' Fermeture du Recordset
      'l = rst.RecordCount
      End Sub



      merci par avance
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > bithack Messages postés 143 Statut Membre
         
        Re,

        1: ne pas ouvrir le recordset en lecture seule si vous voulez ecrire dans la table
        2:
        .Fields("run") = Run1
        ne suffit pas il faut le recordset ex: rsrun1.Fields("run") = Run1
        3: mettre a jour la table via le recordset: ex:
        rsrun1.UpDate


        A+
        0
    2. bithack Messages postés 143 Statut Membre 6
       
      re,
      je vais modifier. je vous remercie pour votre aide !
      a+
      0