Bonjour,

dans la FAQ j'ai trouvé ca (comme dans de nombreux sites et documents web):
Connexion a la base Pour ouvrir la base, placer un composant ADOConnection sur la fiche. Puis effectuer un clic droit sur le composant et choisir "Modifier la chaîne de connexion".
Cliquer ensuite sur le bouton construire pour utiliser l'assistant.
Sélectionner le fournisseur : "Microsoft Jet 4.0 OLE DB Driver" et cliquer sur suivant. Entrer alors le chemin d'accès à la base ainsi que le nom d'utilisateur et son mot de passe. Valider la chaîne.
Mettre enfin ADOConnection1.LoginPrompt à False.
Pour activer la connexion faire ADOConnection1.Open à l'exécution ou mettre ADOConnection1.Connected à True en conception.
Jusque la j'ai bien compris, et ca ne me pose pas de problème, sauf que j'aimerais utiliser mon active x sur un état MSaccess, et il me faut une propriété qui ai les mêmes comportements que la propriété "control source " des autres contrôles Access en mode creation, et se mette ajour en fonction de l'enregistrement courant sur l’état.

Mon problème est le suivant:
  • Partout, dans les paramètres de connexion on retrouve source=[chemin du fichier de base de données], ça me pose un problème vu que l'activex est posé sur une form de l'application, il devrais déjà pouvoir accéder à toutes les structures interne de la base, pourquoi se reconnecter de l’extérieur?.
  • Avez vous donc une idée de la façon dont il faut procéder, afin de parvenir a mes fins ?
    piste VB6:
    am only aware of what must be done in VB6, for example:

    'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
    'MemberInfo=13,0,0,
    Public Property Get Text() As String
    Attribute Text.VB_ProcData.VB_Invoke_Property = ";Data"
    Attribute Text.VB_UserMemId = -517
    Attribute Text.VB_MemberFlags = "34"
    Text = m_Text
    End Property

    Those attributes ensure that Access shows the "Control source" property. I've toyed around with various attributes (namely DefaultPropertyAttribute, DesignerProperties, DefaultBindingProperty, etc) in .NET / C#, but to no avail.
    Edit: it seems to me that the "MemberFlags" attribute translates to this: TypeLibVarFlags.FDefaultBind & TypeLibVarFlags.FBindable ... however, I can't apply those attributes to properties, only fields...
  • Y a t'il une méthode équivalente en delphi ?, il n'y a pas d'attribut sur une propriété, ca ressemble à un champ de données.



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
 
type
 
  TQRCodeEncoding = (qrAuto, qrNumeric, qrAlphanumeric, qrISO88591, qrUTF8NoBOM, qrUTF8BOM);
  T2DBooleanArray = array of array of Boolean;
 
  TQRCODE = class(TCustomControl)
  private
    { Déclarations privées }
 
  protected
    { Déclarations protégées }
    FBitmap: TBitmap;
    FData: WideString;
    FRows: Integer;
    FColumns: Integer;
    FEncoding: TQRCodeEncoding;
    FQuietZone: Integer;
    FElements: T2DBooleanArray;
    procedure SetEncoding(NewEncoding: TQRCodeEncoding);
    procedure SetData(const NewData: WideString);
    procedure SetQuietZone(NewQuietZone: Integer);
    function GetIsBlack(Row, Column: Integer): Boolean;
 
  public
    { Déclarations publiques }
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    procedure Paint; override;
    procedure Refresh;
    property Data: WideString read FData write SetData;
    property Encoding: TQRCodeEncoding read FEncoding write SetEncoding;
    property QuietZone: Integer read FQuietZone write SetQuietZone;
    property Rows: Integer read FRows;
    property Columns: Integer read FColumns;
    property Bitmap: TBitmap read FBitmap;
    property IsBlack[Row, Column: Integer]: Boolean read GetIsBlack;
 
  published
    { Déclarations publiées }
    property Donnees: WideString read FData write SetData;
    property Encodage: TQRCodeEncoding read FEncoding write SetEncoding;
    property Margeinterne: Integer read FQuietZone write SetQuietZone;
    property Image: TBitmap read FBitmap;
  end;