Vb6:erreue d'execution '91'

Bonjour,
erreur d'execution'91'
variable objet ou variable bloc With non defini
et Rsmq.AddNew coloré en jaune
??? c quoi ma faute???
Configuration: Windows XP Internet Explorer 7.0

12 réponses

  1. Private Sub Form_Load()
    Set Text1.DataSource = Rsmq
    'pour l'incrementation dans la base
    Set Text2.DataSource = Rsmq
    indic = 0
    
    If VarMAJ = "A" Then
       Fmarque.Caption = "ÅÖÇÝÉ ÇáÑãÜÜÒ"
       Command1.Visible = True
       Command8.Visible = False
       Command9.Visible = False
       Command10.Visible = False
       Command11.Visible = False
       
       OuvBase RsMqNum, "SELECT * From marque order by cod_marq"
    
       If RsMqNum.RecordCount <> 0 Then
       'aller au derniere
          RsMqNum.MoveLast
          'il va lire le dernier enregistrement : fields(lire)
          codmarq = RsMqNum.Fields("cod_marq") + 1
       Else
        'si c'est le 1er enregistrement
          codmarq = 1
       End If
     
       Rsmq.AddNew
       Text2.Text = codmarq
    End If
    If VarMAJ = "M" Then
       Fmarque.Caption = "ÊÍííä ÈíÇä ÇáÜÜÑãÒ"
       Command1.Visible = False
       Command8.Visible = True
       Command9.Visible = True
       Command10.Visible = True
       Command11.Visible = True
    End If
    
    If VarMAJ = "S" Then
       Fmarque.Caption = "ÍÐÝ ÇáÑãÜÒ "
       Command1.Visible = True
       Command8.Visible = False
       Command9.Visible = False
       Command10.Visible = False
       Command11.Visible = False
       Text1.Locked = True
    End If
    End Sub

    celle en gras : coloré en jaune
    1
    1. Tu as utilisé un variable dont VB ne connait pas la valeur, c'est surement une faute de frappe de ta part.
      0
      1. j'ai bien verifier et normalement toute est bon
        ???
        0
        1. Bonjour,

          Serait il possible d'avoir la déclaration de tes variables notamment la déclaration de Rsmq stp.

          Cdt
          0
          1. Public CnEle As Connection
            Public Commande As Integer
            Dim indic As Integer
            Public RMessage As Long
            Public VarMAJ, FenActive As String
            Public RsMqNum, RsTypNum, RsSerNum, RsUtlNum As Recordset
            Public Rstyp As Recordset
            Public Rsmq As Recordset
            Public RsSer As Recordset
            Public Rsutl As Recordset
            Public Rsmat As Recordset
            0
            1. Merci,
              Je ne suis pas sur de mon coup mais essaie la syntaxe suivante :

              Tu remplaces les lignes :

                 Rsmq.AddNew
                 Text2.Text = codmarq


              par:

              With Rsmq
                  .AddNew
                  !codmarq = Text2.Text
                  .Update
              End With


              Dis nous si ça marche.

              Cdt
              0
              1. Slt
                vous avez bel et bien déclarer tes objets mais je ne voie pas leurs instenciation un truc du genre
                Public rsmq As RecordSet
                rsmq = new RecordSet
                


                pour dire vrai moi je n'ai jamais utilisé les recordset de la façon donc vous le faites voici ce que je fais d'habitute
                j'inporte la référence Microsoft ActiveX Data Object 2.0 Library
                et là je déclare mes objets comme suit.
                Public adoCon As ADODB.Connection
                Pubic rsmq As ADODB.RecordSet 
                
                puis avant de les utiliser je les instancie
                adoCon = new ADODB.Connection
                rsmq = New ADODB.RecordSet
                
                ...
                cdlt.
                ;-)
                
                0
                1. merci de votre aide mes amis j'ai bien vérifierm et sa va et sa va mnt :))
                  mé j'ai un autre pb :( qd je clik sur ok ^pour enregistrer l'ajout d'un donner un msg d'erreur d'exécution
                  [microsoft][pilote odbc microsoft access] definition de l'attribut impossible a ce stage
                  Public Sub Enregistrer(Rs)
                  
                  CnEle.BeginTrans
                     If (VarMAJ = "A") Then
                        Rs.UpdateBatch
                     End If
                     If VarMAJ = "M" Then
                        Message.Caption = "ÍÐÇÑí"
                        Message.Label1.ForeColor = 32768
                        Message.Label1.Caption = "åá ÊÑíÏ ÊÓÌíá åÐå ÇáãÚáæãÇÊ ¿"
                        Message.Show 1
                        If RMessage = 1 Then
                           Rs.UpdateBatch
                           Rs.MoveNext
                           Rs.MovePrevious
                        Else
                           Rs.CancelUpdate
                        End If
                     End If
                     If (VarMAJ = "S") Then
                        If Rs.RecordCount <> 0 Then
                           Message.Caption = "ÍÐÇÑí"
                           Message.Label1.ForeColor = 192
                           Message.Label1.Caption = "åá ÃäÊ ãÊÄßÏ ÍÐÝ åÐå ÇáãÚáæãÇÊ ¿"
                           Message.Show 1
                           If RMessage = 1 Then
                              Rs.Delete
                              Rs.UpdateBatch
                           End If
                        End If
                     End If
                  CnEle.CommitTrans
                  
                  
                  
                  End Sub


                  celui en gras coloré en jaune chez moi???
                  0
                  1. Alors la... j'ai jamais eu ce problème auparavant :-/ un peu de recherche s'impose!
                    0
                    1. Bonjour,

                      Les transactions se font sur un objet de type Workspace voilà sans doute pourquoi ça ne marche pas !

                      Cdt
                      0
                      1. bonjourrr
                        c a dire quoi ??? que dois je faire ???
                        0
                        1. Je te passe un extrait de la msdn library visual studio 6.0 ça pourra t'éclairé j'espère:
                          Les méthodes de transaction gèrent de la manière suivante le traitement des transactions au cours d'une session définie par un objet Workspace : 
                          
                          BeginTrans commence une nouvelle transaction.
                          
                          
                          CommitTrans met fin à la transaction en cours et enregistre les modifications.
                          
                          
                          Rollback met fin à la transaction en cours et restaure les bases de données de l'objet Workspace dans l'état dans lequel elles étaient au début de la transaction en cours. 
                          Syntaxe
                          
                          workspace.BeginTrans | CommitTrans [dbForceOSFlush] | Rollback
                          
                          L'espace réservé workspace est une variable objet qui représente l'objet Workspace contenant les bases de données qui font l'objet de transactions.


                          Et maintenant l'exemple donné par cette même msdn:

                          Sub BeginTransX()
                          
                             Dim strName As String
                             Dim strMessage As String
                             Dim wrkDefault As Workspace
                             Dim dbsNorthwind As Database
                             Dim rstEmployees As Recordset
                          
                             ' Obtient l'objet Workspace par défaut.
                             Set wrkDefault = DBEngine.Workspaces(0)
                             Set dbsNorthwind = OpenDatabase("Comptoir.mdb")
                             Set rstEmployees = _
                                dbsNorthwind.OpenRecordset("Employés")
                          
                             ' Démarre la transaction externe.
                             wrkDefault.BeginTrans
                             ' Démarre la transaction principale.
                             wrkDefault.BeginTrans
                          
                             With rstEmployees
                          
                                ' Effectue un boucle sur le jeu 
                                ' d'enregistrements et demande à l'utilisateur 
                                ' s'il souhaite changer la fonction d'un employé
                                ' précisé.
                                Do Until .EOF
                                   If !Fonction = "Représentant(e)" Then
                                      strName = !Nom & ", " & !Prénom
                                      strMessage = "Employé : " & strName & vbCr & _
                                         "Changer la fonction en Responsable comptes ?"
                          
                                      ' Change la fonction de l'employé indiqué.
                                      If MsgBox(strMessage, vbYesNo) = vbYes Then
                                         .Edit
                                         !Fonction = "Responsable comptes"
                                         .Update
                                      End If
                                   End If
                          
                                   .MoveNext
                                Loop
                          
                                ' Demande si l'utilisateur souhaite valider 
                                ' toutes les modifications apportées ci-dessus.
                                If MsgBox("Enregistrer toutes les modifications ?" _
                                      , vbYesNo) = vbYes Then
                                   wrkDefault.CommitTrans
                                Else
                                   wrkDefault.Rollback
                                End If
                          
                                ' Imprime les données en cours dans le jeu 
                                ' d'enregistrements.
                                .MoveFirst
                                Do While Not .EOF
                                   Debug.Print !Nom & ", " & !Prénom & _
                                      " - " & !Fonction
                                   .MoveNext
                                Loop
                          
                                ' Révoque toutes les modifications effectuées 
                                ' par l'utilisateur pour cette démonstration.
                                wrkDefault.Rollback
                                .Close
                             End With
                          
                             dbsNorthwind.Close
                          
                          End Sub


                          C'est l'exemple donné par la msdn library pour l'utilisation des transactions.

                          Donc il te faut instancier un objet workspace, n'hésite pas à te renseigner sur ce sujet car, je ne maitrise pas trop les workspace.

                          A priori tu peux utiliser l'objet workspace par défaut comme il est fait ici.
                          0