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 :

Passer un objet user en parametre


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Par défaut Passer un objet user en parametre
    Bonjours,
    Je programme habituellement en vbscript sous asp. Mais pour mon présent projet j'ai choisi Vb6 pour cause de rapidité(Programme qui scrute des site web d'annonce 24h/24).

    Donc jai transfere mon code asp sous vb6.
    Tout allais bien jusqu'a ce que je tombe sous un objet(type) que je veux passer en paramettre dans une procedure.

    Lors de la compilation il me donne l'erreur suivante:

    Erreur de compilation:
    Type défini par l'utilisateur non défini


    Voici ma procedure :
    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
    '********************************************************************************************
    '   Procedure qui update l'annonce avec les nouveau élement
    '********************************************************************************************
    Sub UpdateAnnonceKijiji(objAnnonce As AnnonceAuto)
        Dim objConn As ADODB.Connection
        Dim strSqlUpdateAnnonceKijiji As String
     
        strSqlUpdateAnnonceKijiji = "UPDATE dbo.tblAnnonce SET strTitreAnnonce = '" + FixQuote(objAnnonce.strTitre) + "', strDetailAnnonce = '" + FixQuote(Trim(objAnnonce.strDetail)) + "', bActiveAnnonce = 1 WHERE ((FK_Site = 2) OR (FK_Site = 3)) AND (iNumberAnnonce = " + CStr(objAnnonce.iNumber) + ")"
        Response "strSqlUpdateAnnonceKijiji |" + strSqlUpdateAnnonceKijiji + "|"
     
        'cree la connection
        Set objConn = CreateObject("ADODB.Connection")
        objConn.ConnectionString = strConn
        objConn.Open
     
        objConn.Execute strSqlUpdateAnnonceKijiji
     
        'fermer la connection
        objConn.Close
        Set objConn = Nothing
     
    End Sub
    Voici ma procedure qui appele ce procedure



    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
    Private Sub Command1_Click()
        Dim objAds As Module1.AnnonceAuto
        Dim astrListeAnnonceVide() As Long
        Dim iBoucleRempliANnonce As Long
        Const ciNbDetailAnnonceAlaFois  As Integer = 11
     
        'trouve les X annonce vide
        astrListeAnnonceVide = astrRempliListeAnnonceVide(ciNbDetailAnnonceAlaFois)
     
        'boucle de remplissage d'annonce
        For iBoucleRempliANnonce = 0 To UBound(astrListeAnnonceVide)
                'rechercher les info de l'annonce sur la page web
            Set objAds = RempliKijiji(astrListeAnnonceVide(iBoucleRempliANnonce))
            'verifier si pas effacer
            If objAds.bDeleted = 0 Then
                UpdateAnnonceKijiji objAds
            End If
            ResponseHr
        'Fin de boucle de remplissage d'annonce
        Next
     
     
        Response.write "<hr><hr><hr><h1>ON RECOMMENCE</h1><hr><hr><hr>"
     
        'metre le timer a on
        Timer1.Enabled = True
     
    End Sub

    et pour fini voici ma class

    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
    '********************************************************************************************
    '   CLASSE ANNONCE AUTO
    '********************************************************************************************
    Type AnnonceAuto
         bAuto As Boolean
         bVendu As Boolean
         bDeleted As Boolean
         iNumber    As Long
         strTitre As String
         strDetail As String
         curPrice As Currency
         strMake As String
         strModel As String
         iAnnee As Integer
         strVille As String
         iKm As Long
         iNbDoor As Integer
         iNbCyl As Integer
         bAutomatique As Boolean
         bAc As Boolean
         iPhone1 As Long
         iPhone2 As Long
         strUrl As String
         strImage As String
    End Type

    Je veux aussi dire que tout est fait dans la page de code dur form1

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Dim objAds As Module1.AnnonceAuto
    dans la page de code dur form1
    J'ai un doute, en VB6, la declaration de type doit être fait dans un module.bas
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour Progelect,

    J'ai un doute, en VB6, la declaration de type doit être fait dans un module.bas
    Je préfère répondre ici plutôt que de t'envoyer un MP car voilà là une interprêtation fréquente de l'aide en ligne... et donc un tir à rectifier de manière à servir à chacun.

    Le mot module ne signifie pas forcément module.bas ...

    On écrit au niveau module d'une Form, par exemple, lorsque l'on écrit tout en haut du code, avant toute procédure.

    Exemple, maintenant, d'une déclaration de type au niveau module de la Form :

    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
    
    'nous sommes ici au niveau module de la Form
    Private Type AAAA
       nom As String * 10
       prenom As String * 15
    End Type
    
    Dim toto As AAAA
    
    'nous passons maintenant au niveau des procédures de la Form
    Private Sub Form_Activate()
      toto.nom = "DEMO"
      toto.prenom = "petite"
    End Sub
    
    Private Sub Command1_Click()
      MsgBox toto.prenom & " " & toto.nom
    End Sub

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    en confirmation de ce que dit ProgElect ta déclaration de type doit être faite dans un Module (projet/ajouter Module).
    Ta déclaration doit être précédée du mot..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Public Type AnnonceAuto
        ....
        ....
        End Type
    Tu peu alors la récupérer partout dans le projet.
    A+

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Au niveau de la Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Type AAAA
       nom As String * 10
       prenom As String * 15
    End Type
    Pas d'erreur.
    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Type AAAA
       nom As String * 10
       prenom As String * 15
    End Type
    La erreur de compilation, impossible de definir un type public à l'interrieur d'une classe.
    ucfoutu, il est des suptilités que je n'ai pas encor assimilé , pourtant en lisant correctement la description de l'erreur, j'aurrai dût depuis longtemps essayer le Private.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Oui, Progelect,

    Je dois avouer deux choses :
    1) je me suis moi-même longtemps (trop) trompé sur ce point là !
    2) la confusion sur le mot module; est, d'une certaine manière assez "entretenue" par la présentation faite par VB lors de l'insertion d'un module.bas (le mot .bas disparait de la fenêtre d'ajout).
    Tu es donc largement excusable (ou alors j'ai des baffes à prendre rétroactivement moi aussi...)

    Private change tout ... et Public est par défaut !!!
    Sacré VB, Va...

    Mais j'espère bien que ce que je suis en train de conduire à son terme saura être plus clair ...
    Lis là (mon message de ce jour) :
    http://www.developpez.net/forums/sho...33#post2556833

    Tu seras également le bienvenu, si tu le souhaites...

    Un dernier point, maintenant : Confort de développement ou économie de ressources ? l'équilibre est parfois difficile à trouver. Un bon tuto sur ce sujet serait sans aucun doute de nature à prendre les décisions les mieux éclairées

    Amitiés

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

Discussions similaires

  1. comment passer des objet en parametre?
    Par Siñal dans le forum Langage
    Réponses: 9
    Dernier message: 01/06/2009, 09h35
  2. passer un objet en parametre d'une methode RMI
    Par Dryss51 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 22/02/2008, 02h10
  3. Passer un objet en parametre
    Par awikatchikaen dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/05/2007, 11h43
  4. Passer un objet en parametre avec html:link
    Par faico dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/05/2007, 00h40
  5. Réponses: 4
    Dernier message: 20/04/2006, 11h07

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