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

Bases de données Delphi Discussion :

Comment connecter un ADOConnection par code ?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut Comment connecter un ADOConnection par code ?
    bonjour
    j'ai une form ou il y'a
    adoconnection, adotable, datasource, opendialog, bouton (qui execute opendialog) et des contrôles BD.
    adoconnection doit se connecter à une base à access qui est protégé par un mots de passe.
    la manipulation se fait par le boutton, un opendialog s'ouvre et je dois selectionner la BD selon sont chemin et associé le chemin à la connection string du adoconnection et voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    procedure TForm1.SpeedButton2Click(Sender: TObject);
    var
    conn, chemin: ansiString;
    begin
    conn:=adoconnection1.ConnectionString+';';
    chemin:=OpenDialog1.FileName;
    OpenDialog1.Execute;
    adoconnection1.ConnectionString:=conn+chemin;
    adoconnection1.Connected:=true;
    end;
    tout d'abord dans l'inspecteur des objets en connectionstring du ado j'ai supprimer seulement la chaine ou il y'a l'emplacement de ma base, maintenant en code je mets cette chaine à la variable conn plus un point-virgule, ensuite un variable chemin qui prends le chemin de la base depuis opendialog, enfin je mets les deux variables dans la connectionstring d'adoconnection et j'active la connection.
    Mon probléme ici c'est que je n'arrive plus cette connection et toujours il y'a des messages d'erreur delphi et un message d'erreur qui me dit echec d'authentification, aussi je veux que la selection de la base se fais une seule fois c'est à dire que la chaine doit être sauvegarder et il ne faut pas qu'a chaque exécution je dois (ou l'utilisateur) mettre le chemin sauf en cas du changement de l'emplacement de la BD.
    merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Pour l'erreur d'authentification c'est tout à fait normal car tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adoconnection1.Connected:=true;
    Tu devrais plutôt utiliser la procédure open(const UserID, Password: WideString); en remplaçant la ligne du connected par :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    adoconnection1.Open('nom user', 'Mot de passe');
    Par ailleurs pour conserver la chaîne de connexion, il te suffit de la sauvegarder par exemple dans un fichier ini afin de la recharger à chaque lancement de ton application.

    Pour gérer les fichiers ini tout est indiqué dans la FAQ à cet endroit.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Pascal Jankowski Voir le message
    Pour l'erreur d'authentification c'est tout à fait normal car tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adoconnection1.Connected:=true;
    Tu devrais plutôt utiliser la procédure open(const UserID, Password: WideString); en remplaçant la ligne du connected par :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    adoconnection1.Open('nom user', 'Mot de passe');
    Par ailleurs pour conserver la chaîne de connexion, il te suffit de la sauvegarder par exemple dans un fichier ini afin de la recharger à chaque lancement de ton application.
    salut
    pour ma BD il n'y a pas de login, c'est juste un mots de passe en plus je n'arrive plus à manipuler toute cette chaine et associer
    adoconnection1.Open('nom user', 'Mot de passe');
    à toute cette chaine
    pouvez vous m'expliquer comment faire cette manipulation (avec le fichier ini par exemple) et sauvegarder une fois pour toute le chemin dans adoconnection string et pas à chaque lancement de l'application.
    merci

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    salut
    pour le mot de passe est déja déclarer au niveau de la chaine associé à connection string du adoconnection, bon ici il y'a un autre probléme c'est un message qui me dit "pilote ISAM introuvable"

    voila mon code:
    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
     
     
    procedure TForm1.SpeedButton2Click(Sender: TObject);
    var
    conn1, conn2, conn3, conn, chemin: String;
    begin
     
    conn1:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin';
     
    conn2:='Mode=Share Deny None;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=mon mot de passe;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2';
     
    conn3:='Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
     
    conn:=adoconnection1.ConnectionString;
    OpenDialog1.Execute;
    chemin:=OpenDialog1.FileName;
    adoconnection1.ConnectionString:=conn1 + ';' + chemin + ';' + conn2 + ';' + conn3;
    adoconnection1.Connected:=true;
     
    end;

    merci

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par dj_techno Voir le message
    pour ma BD il n'y a pas de login, c'est juste un mots de passe en plus je n'arrive plus à manipuler toute cette chaine et associer
    adoconnection1.Open('nom user', 'Mot de passe');
    à toute cette chaine
    J'avoue avoir un peu de mal à te suivre.

    Bon résumons pour ton premier problème, tu associes une chaîne de connexion dans laquelle le user et le login sont déjà décrits et tu te connectes avec un simple ADOConnection1.Open;

    Si tu rencontres l'erreur echec d'autentification, le problème vient simplement du fait que ton composant ADOConnection est déjà connecté en design-time. C'est à dire connected = True dans l'inspecteur d'objet.

    Pour résoudre ce problème, il te suffit de replacer à False, la valeur de connected dans l'inspecteur d'objet, de recompiler ton application et cela devrait résoudre ce problème.

    Second cas, les valeurs de login et de password ne figurent pas dans ta chaîne de connexion alors il faut pour connecter ton ADOConnection utiliser la fonction Open telle que je te l'ai décrite dans mon post précédant. En ayant au préalable vérifié que connected est bien à False en design-time afin d'éviter l'erreur d'echec d'authentification.

    Pour terminer, en ce qui concerne les fichiers ini, la FAQ est assez bien faite pour que tu puisses mettre cette technique en oeuvre. Prend simplement le temps de lire chaque QR traitant du sujet.

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    salut
    je n'ai pas de message pour le mots de passe maintenant et mon ado connection est toujours en false en mode création et je suis entrain de voir le FAQ, mais le probléme ici c'est le message "pilote ISAM introuvable" comme je viens de poser dans ma dernière réponse
    merci

  7. #7
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Un petit point supplémentaire.

    Pour gérer la construction des chaînes de connexion avec ADO, il existe une fonction dans l'unité ADODB qui permet de lancer l'assistant des liaisons de données.

    la fonction en question est:
    function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;

    tu peux l'utiliser la manière suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ADOConnection1.ConnectionString := 
      PromptDataSource(0, ADOConnection1.ConnectionString);
    Incorpore cette fonction à ton code et vois si tu arrives à te connecter à ta base. Cela sera à mon avis plus simple pour toi déjà de créer la chaîne de connexion, puis de vérifier si un autre problème n'est pas à l'origine de tes petits soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.SpeedButton2Click(Sender: TObject);
    begin
      ADOConnection1.ConnectionString := 
        PromptDataSource(0, ADOConnection1.ConnectionString);
      try
        adoconnection1.Connected:=true;
      except
        Raise;
      end;
    end;

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    salut
    PromptDataSource(0, ADOConnection1.ConnectionString);
    fonctionne bien mais l'inconvenient c'est la connection ne sera pas sauvegarder pour une nouvelle session de l'application (ouverture une autre fois de l'application) et pour un utilisateur n'est pas un bon connaisseur dans se genre de fenêtre c'est un peu difficile!
    merci

  9. #9
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Tu sauvegardes la chaîne de connexion dans ton fichier ini.

    Tu tentes une connexion au lancement de ton application avec la chaîne contenue dans ton ini.
    Si la connexion ne s'effectue pas alors seulement à cet instant tu lances le promptDataSource.

    Je procéderai de la façon suivante si j'étais à ta place.

    Soit encore un truc de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
      ADOCOnnection1.connectionString := 'valeur contenue dans l''ini';
      try
        ADOConnection1.Open;
      except
        on E:exception do
        begin
          messageDLG(E.Message,mtError,[mbOk],0);
          ADOConnection1.ConnectionString :=
             PromptDataSource(0, ADOConnection1.ConnectionString);
        end;
      end;

  10. #10
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    je vais suivre un peu le FAQ et je vais essayer de le faire et je vais vous dire, mais il y'a le probléme "pilote ISAM introuvable" comment le régler?

  11. #11
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    En ce qui concerne le pilote ISAM, regarde ce lien

  12. #12
    Membre habitué Avatar de host22
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mars 2007
    Messages : 222
    Points : 183
    Points
    183
    Par défaut
    Je suis confronter au même problème j'aurai aimer savoir si c'est résolu ou pas? et si oui comment!
    Salut et merci.

  13. #13
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    J'avais réalisé un un utilitaire qui ouvre des bases mdb en sauvegardant les dernières ouvertes dans un *.ini :
    http://sourceforge.net/projects/axbase

  14. #14
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut Dj-Techno.

    Actuellement j'utilise un programme qui fait exactement ce que tu recherche.

    Mais je n'ai pas choisi d'enregistrer le connectionString ni dans un ini ni dans la base de registre, je te conseil d'enregistrer ce chemin directement dans un champs de Ta BD, ce qui aura pour avantage de fonctionner en réseau si d'autre personne se connect à ta BD.

    Mise à part la remarque de Pascal sur le fait que tu doit mettre dans l'inspecteur d'oBjet de ton ADOCnx à False le paramètre Connect, je te conseille également d'utilise un Module de Données (Data Module).

    Donc :
    1 - créer un DATA Module
    2 - pose y un ADOConnection, ADOTable, ADOQuery et des sources de données pour l'affichage sur des DBGrid.

    3 - dans l'évenement Before connect de ton ADOConnection place ce code

    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
    procedure TModuleDeDonneeSecondaire.ADOCnx1BeforeConnect(
      Sender: TObject);
    Var
      BaseLogicielExterne: String;
    begin
    // BaseLogicielExterne équivaut au chemin+au fichier et extension de ta base
    // Exemple : 'c:\Mabase.Mdb'
    
    { A TOI DE LIRE ICI LA VALEUR DE TON FICHIER INI }
    
    if BaseLogicielExterne <> '' then
    Begin
      Try
        ADOCnx1.Provider := 'Microsoft.Jet.OLEDB.4.0';
        ADOCnx1.LoginPrompt := False;
        ADOCnx1.ConnectionString :='Data Source='
        + BaseLogicielExterne + ';Mode=Read;Persist Security Info=False';
      Except
        on E : Exception do
        Begin
          ShowMessage(E.ClassName + ' erreur soulevée : '+#13+#10+
          'Message : '  + E.Message);
        end;
      end;
    end
    Else
    Begin
    // Traitement proposé par Pascal
    end;
    // ...
    end;
    Alors BaseLogicielExterne est égale au chemin et au fichier .MDB
    Comme tu souhaite utiliser un INI (encore une fois plutot le mettre dans la BD) mais je respect ton choix tu pourra lire ton INI et renvoyé la valeur dans
    BaseLogicielExterne

    Lorsque tu sera dans ton programme, il te suffira d'ouvrir une table ou de faire une requete, la procedure BEforeConnect fera son travail.

    A plus

  15. #15
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    Mais je n'ai pas choisi d'enregistrer le connectionString ni dans un ini ni dans la base de registre, je te conseil d'enregistrer ce chemin directement dans un champs de Ta BD, ce qui aura pour avantage de fonctionner en réseau si d'autre personne se connect à ta BD.
    comment?? , normalement chaque client son propre fichier ini?? non

    [Edit] en conseption
    1-loginprompt=false
    2-doublclick sur adoconnection
    3-construit la chaine de connection
    4-copie la chaine à partir d'inspecteur d'objet sans se connecte(adocnnection.connet=false)
    5-insert cette chine dans le code comme const, et en la modifiant comme suit: exp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Filt:='Provider=VFPOLEDB.1;Data Source=%s;Password="";Collating Sequence=MACHINE';
    6-à toi de coisir où tu veux enregistré le chemain:fichier ini,base de registre, fichier normal
    là je donne un example avec dérnier méthode:
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    const
         Filt='Provider=VFPOLEDB.1;Data Source=%s;Mode=ReadWrite;'+
               'Password="";Collating Sequence=MACHINE';
    var mot:string;//chemain de la base
    Function TDataModule2.ChangeBase;
    var
        b:boolean;
        l:TStrings;
         s:string;
    begin
         Result:=false;
         repeat
            b:=OpenDialog1.Execute;
            if not b then exit;
            mot:=OpenDialog1.FileName;
         until FileExists(mot);
         l:=TStringList.Create;
         s:=ExtractFilePath(Application.ExeName);
         if s[length(s)]<>'\' then s:=s+'\';
         s:=s+'Fichier.sys';
         try
           l.Clear;
           l.Add(mot);
           l.SaveToFile(s);
         finally
            l.Free;
         end;
         Result:=True;
    end;
    Function  TDataModule2.Lire:Boolean;
    var
         l:TStrings;
         s:string;
    begin
         Result:=false;
         s:=ExtractFilePath(Application.ExeName);
         if s[length(s)]<>'\' then s:=s+'\';
         s:=s+'Fichier.sys';
         if not FileExists(s) then exit;
         l:=TStringList.Create;
         try
           l.LoadFromFile(s);
           mot:=l.text;
         finally
            l.Free;
         end;
         result:=(mot<>'') and (Fillexiste(mot));
    end;
    Function  TDataModule2.Connection;
    var  s:string;
    begin
           try
             s:=format(Filt,[mot]);
             if ADOConnection1.Connected then
               ADOConnection1.Connected:=false;
             ADOConnection1.ConnectionString:=s;
             ADOConnection1.Connected:=true;
             Result:=true;
           except
             Result:=false;
           end;
    end;
    procedure TDataModule2.DataModuleCreate(Sender: TObject);
    var  i:integer;
    begin
         i:=3;
         if not Lire then
           while (not ChangeParam) and (i>0) do dec(i);
         if i<0 then halt;
         Connection;
    end;
    ce code, je l'ai copier d'un anciens projet, actuellement, j'utilise FB, et les alias

  16. #16
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par edam Voir le message
    comment?? , normalement chaque client son propre fichier ini?? non
    Juste pour Edam

    Ce que je voulais dire, moi je travail avec une base de donnée qui mets propre, exemple MABASE.MDB que je place sur le serveur où le poste principal.
    Dans mon programme l'accès à cette base se fait par une lecture dans la base de registre (sur ce point idem que la demande de Techno a part que c'est dans le registre) mais à l'utilisation de mon programme je donne la possiblité aux utilisateurs de ce connecté à une autre base de données également sur même serveur on l'appelera BASEEXTERNE.MDB
    La j'enregistre la liaison entre MABASE et BASEEXTERNE dans une table et un champs de MABASE.MDB, ainsi si 1 utilisateur fais le lien, instantanément l'ensemble du réseau à l'information.

  17. #17
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    je place sur le serveur où le poste principal.
    Dans mon programme l'accès à cette base se fait par une lecture dans la base de registre (sur ce point idem que la demande de Techno a part que c'est dans le registre) mais à l'utilisation de mon programme je donne la possiblité aux utilisateurs de ce connecté à une autre base de données également sur même serveur on l'appelera BASEEXTERNE.MDB
    sa c'est l'utilisation normalle avec multi-base (base pour chaque année, ou multi-société, ou...),
    edit
    Citation Envoyé par BuzzLeclaire Voir le message
    ainsi si 1 utilisateur fais le lien, instantanément l'ensemble du réseau à l'information.
    je te le déconseil, c'est par expérience
    un jour, on a la mal chance qu'un client revient à une base anciens (par exmple de 2006, pour visualisé quelque chose, alors les autres utlisateurs, en l'abitude d'entrée directement, c'était la cata

  18. #18
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par edam Voir le message
    sa c'est l'utilisation normalle avec multi-base (base pour chaque année, ou multi-société, ou...),
    edit
    je te le déconseil, c'est par expérience
    un jour, on a la mal chance qu'un client revient à une base anciens (par exmple de 2006, pour visualisé quelque chose, alors les autres utlisateurs, en l'abitude d'entrée directement, c'était la cata
    Je pense que cela dépend du context.
    Dans mon cas c'est trés précieux, et l'acces au changement de base externe est protégée.

Discussions similaires

  1. [WD9]comment puis-je trier par code de TVA
    Par loic20h28 dans le forum WinDev
    Réponses: 4
    Dernier message: 28/12/2008, 21h33
  2. Réponses: 6
    Dernier message: 10/04/2008, 13h43
  3. [NotifyIcon]Comment changer l'icone par code ?
    Par exclusif dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/01/2007, 18h25
  4. Comment faire Copier/Coller par code VBA sur INTERNET...
    Par GESCOM2000 dans le forum Access
    Réponses: 5
    Dernier message: 02/01/2006, 13h19
  5. [TChart] Comment changeer le style par code ?
    Par obione dans le forum Composants VCL
    Réponses: 3
    Dernier message: 09/12/2005, 16h52

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