Opérateur !

Résolu
NHenry Messages postés 15131 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 18 juin 2024 - 21 août 2007 à 11:57
NHenry Messages postés 15131 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 18 juin 2024 - 21 août 2007 à 13:27
Bonjour

Pour remplacer les Recordset (voir ma question précédente), je voudrais utiliser une classe, mais je souhaiterais concerver un codage similaire, donc savez-vous comment implémenter le "!" ?

Merci d'avance

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 août 2007 à 12:14
finalement, on peut le faire, très facilement ^^

j'ai fait une collection, via l'assistant.
c'est une collection d'objets :

Public Nom As String
Public Prenom As String

ensuite, simplement :

Dim a As New Collection1
a.Add "Reynald", "THOMAS", "RENFIELD"
a.Add "Nicolas", "SOREL", "NIX"

MsgBox a!Renfield

ou même :

MsgBox a!Renfield.Prenom


une simple histoire de propriétés a définir comme membre par défault...
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 août 2007 à 12:44
Form1 :
Private Sub Form_Load()
Dim a As New Collection1
a.Add "THOMAS", "Reynald", "Renfield"
a.Add "SOREL", "Nicolas", "Nix"

MsgBox a!Renfield
MsgBox a!Nix.Prenom
End Sub



Class1:
Option Explicit

Public Nom As String
Public Prenom As String



Collection1:
Option Explicit

Private moColl As Collection

Public Property Get Item(Key) As Class1
Set Item = moColl.Item(Key)
End Property

Public Function Add(ByRef vsNom As String, ByRef vsPrenom As String, ByRef vsKey As String) As Class1
Set Add = New Class1
Add.Nom = vsNom
Add.Prenom = vsPrenom

moColl.Add Add, vsKey
End Function

Private Sub Class_Initialize()
Set moColl = New Collection
End Sub






A NE PAS OUBLIER :

Mettre Collection1.Item et Class1.Nom en tant que propriétés par défaut... sinon, ca ne fonctionnera pas. (Outils > Attributs de procédure > Avancés > ID de la procédure => (Par défaut) )
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 août 2007 à 12:06
non...

ce codage est inapproprié, de toutes façon, il est hérité des anciennes versions de VB et c'est une syntaxe non conventionnelle...

RS.Fields("MonChamp").Value fait bien mieux l'affaire...
0
NHenry Messages postés 15131 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 18 juin 2024 159
21 août 2007 à 12:16
Bonjour

Ce n'est pas jouable, mon projet contient plus de 1000 appels à cette syntaxe, ce n'est pas vraiemtn envisageable.
Je souhaite faire cette classe car comme décrit dans le post
http://www.vbfrance.com/infomsg_PROBLEME-TYPES-AVEC-ADO-DAO_1000026.aspx
j'utilise les couples (définis aux démarrage) DAO/Access ou ADO/SQL Server (le couplage a été choisi en raison des performances), et je souhaiterais faire une classe qui remplace les déclarations As Recordset tout en concervant les fonctionnalitées principales (donc le ! aussi).

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15131 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 18 juin 2024 159
21 août 2007 à 12:37
Bonjour

Renfild, ça donne quoi le texte dans les .cls stp, je parvient pas à le faire (j'suis vraiment une buche :) ) ?

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
NHenry Messages postés 15131 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 18 juin 2024 159
21 août 2007 à 13:27
Bonjour

Merci Renfield, ça marche.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Rejoignez-nous