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

Macros et VBA Excel Discussion :

Variable objet ou variable bloc With non définie [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut Variable objet ou variable bloc With non définie
    Bonjour,

    J'essaie de passer une requête en paramètre d'une fonction et de récupérer le résultat dans un textbox qui est également passé en paramètre. Tout fonctionne correctement sauf lors de lorsque je tente d'affecter à la textbox le résultat de la requête.
    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
     
    Private Sub Listview_ItemClick(ByVal Item As MSComctlLib.ListItem)
        Dim req As String
        Dim TextBox5 As TextBox 'ce textbox existe déjà sur la fenêtre ma si ne le déclare pas j'ai une erreur
     
     
        req = "SELECT NOM FROM PERSONNE WHERE ID_PERS = '" _
    & Listview.ListItems(Item.Index).Text & "'"
     
        Call Module.Requete(TextBox5, req)
    End Sub
     
    Public Sub Requete(myTxt As TextBox, _
                                   myQuery As String)
     
        Dim rs As New ADODB.Recordset 
     
        'Déclaration de la variable de connexion
        Dim cnx As ADODB.Connection
        Set cnx = New ADODB.Connection
     
        'Définition du pilote de connexion
        cnx.Provider = "Microsoft.Jet.Oledb.4.0"
        'Définition de la bdd
        cnx.ConnectionString = "bdd.mdb"
        'Ouverture de la base de données
        cnx.Open
     
        '
        '-----------------------------------------------------
        ' Exécution de la requête
        '-----------------------------------------------------
        On Error Resume Next
            Err.Clear
            rs.Open myQuery, cnx, adOpenStatic, adLockReadOnly
     
            If Err.Number <> 0 Then
                MsgBox "Code Erreur : " & Err.Number & vbCrLf & vbCrLf _
                     & "Description : " & Err.Description & vbCrLf
                GoTo Fin
            End If
        On Error GoTo 0
        MsgBox Trim(rs.Fields("NOM").value)
     
        '
        '-----------------------------------------------------
        ' LE PROBLÈME EST ICI
        ' Erreur : Variable objet ou variable bloc With non définie
        '-----------------------------------------------------
        With myTxt
           .Text = Trim(rs.Fields("NOM").value)
        End With
     
    Fin:
        rs.Close
        Set rs = Nothing
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Ce ne serait pas plus judicieux d'utiliser une fonction plutôt qu'une Sub pour retourner le résultat ? Ou alors, utilise une variable String que tu affecte ensuite au TextBox plutôt que de passer l'objet lui même.

    Hervé.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je pense que tu dois avoir une erreur sur l'open du recordset et que tu ne peux voir car tu la shunte avec On Error Resume Next
    , ce qui n'est pas bon du tout comme gestion d'erreur.

    De plus ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnx.ConnectionString = "bdd.mdb"
    Je pense qu'il faudrait le chemin en entier de la base de données.

    Philippe

  4. #4
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    Ce ne serait pas plus judicieux d'utiliser une fonction plutôt qu'une Sub pour retourner le résultat ? Ou alors, utilise une variable String que tu affecte ensuite au TextBox plutôt que de passer l'objet lui même.

    Hervé.
    Pourquoi faire compliquer quand on peut faire simple ?
    C'est simple et opérationnel. Il fallait juste y penser. Merci beaucoup !
    Merci également à Philippe.

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

Discussions similaires

  1. Variable objet ou variable bloc with non définie
    Par tarbala dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 06/05/2008, 12h19
  2. Variable objet ou variable de bloc With non définie
    Par sl1980 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/08/2007, 19h15
  3. Réponses: 11
    Dernier message: 12/06/2007, 09h26
  4. Variable objet ou variable d'un bloc With non définie.
    Par paradeofphp dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/05/2007, 20h41
  5. Réponses: 13
    Dernier message: 01/06/2006, 17h20

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