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 creer base de données Access 2007


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 9
    Par défaut comment creer base de données Access 2007
    Bonjour,

    j'utilise Delphi7 et je veut crée une base de données Access 2007 et la protéger par un mot de passe et cela par le mode programme sous Delphi 7

    et aussi comment ajouter un nouveau champ a une table ou une nouvelle table dans une base de données Access 2007 qui existe déjà

    comment faire sachant que j'utilise les UNIDAC pour me connecter

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Tu peux utilise ACCESS en direct pour "administrer" tes tables

    sinon, faut voir si ACCESS supporte des SQL CREATE TABLE ou ALTER TABLE ADD COLUMN ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 635
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Citation Envoyé par aide Unidac
    TUniConnection.ForceCreateDatabase : Used to force TLiteConnection to create a new database before opening a connection, if the database does not exist.
    ou en utilisant un Script , cela doit être possible (TUNIScript)
    sinon ,UniDac étant l'ancêtre de Firedac j'ai vu il y a pas longtemps un blog sur EDN qui parle de çaça parle d'interbase mais doit pouvoir s'appliquer a d'autres SGBDR

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 9
    Par défaut
    Merci pour votre aide
    mais j'ai tjs pas de réponse a ma question car je veut faire la creation de la base de données par programme sans avoir recours a Access

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 025
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 025
    Par défaut Creer une base, creer une tabla Acces
    Bonjour,
    Oups! j'ai répondu trop rapidement, je n'ai pas pris en compte que tu utilises UNIDAC . Je laisse le code ça pourra peut être servir à quelqu'un d'autre.

    Exemple de code pour DELPHI XE starter ( qui ne possède pas de composants de base de donnée donc valable pour toute version). Il faut que Access soit installé sur le poste ou installer le moteur de base de données ACCESS.
    C'est brut de fonderie. Désolé de ne pas avoir eu le temps de faire le ménage dans le code et de ne laisser que ce qui t'intéresses.
    D7 c'est presque pareil.
    Mais tu as déjà de quoi travailler.


    Il y a un tutorial très bien fait sur développez pour D6 perso de mémoire (dont je me suis inspiré).
    Créer une base
    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
    procedure TForm2.cmdCreeBaseClick(Sender: TObject);
    // FGFG tester si fichier existe
    var
      Filename, TxtMessage: string;
      Moncatalog: tcatalog;
      buttonSelected: integer;
    begin
     
      Filename := ExtractFilePath(Application.ExeName) + 'baseVideFG_2.accdb';
     
      TxtMessage := 'Le fichier' + Filename + ' existe voulez vous l''effacer ?';
     
      if FileExists(Filename) then
        { le fichier existe }
      begin
        buttonSelected := MessageDlg(TxtMessage, Dialogs.mtWarning, [mbYes, mbNo],
          0);
        if (buttonSelected = mrYes) then
          DeleteFile(FileName)
        else
        begin
          showmessage('Pas de base crée - Le fichier existant est conservé');
          exit;
        end;
      end;
     
       Moncatalog := tcatalog.create(self);
       // Ou
       //Moncatalog:= cocatalog.Create  :
     
     
      // Moncatalog.Create();
      //Moncatalog.Create(Aowner classe tcomponent);
      //   Moncatalog.Create1(Const Connectstring)
      // Moncatalog.create1('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + Filename + ';');
     
      Moncatalog.create1('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + Filename
        + ';');
    end;
    Créer une table
    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
     
    procedure TForm2.cmdCreeTableClick(Sender: TObject);
    begin
      // Créer la connexion ADO pour Access
      // FGFG tester si table existe
      try
        if form2.RadioButtonMdb.Checked = true then
        begin
          ADObd := basemdb;
          Mprovider := providerMdb;
        end
        else
        begin
          ADObd := baseAccdb;
          Mprovider := providerAccdb;
        end;
     
        // on se connecte a la base
        Cnx := CoConnection.Create;
        Cnx.Open(Mprovider + ';Data Source=' + ADObd + ';', 'admin', '', -1);
        RS := CoRecordSet.Create;
     
        //    if cnx.State = adStateOpen then
        //      showmessage('Connection is open.')
        //    else
        //      showmessage('Connection is close.');
     
        Cmd := CoCommand.Create;
     
        //FGFG tester si table exist
            // FGFG a creuser Moncatalog.Tables.Item[i].Indexes.Append();
       // Moncatalog.Tables.Delete('qsq');
     
    //    SQL := 'CREATE TABLE Editeur2 (' +
    //      ' Id INTEGER, ' +
    //      ' Nom VARCHAR(100), ' +
    //      ' Adr VARCHAR(200) ' +
    //      ')';
     
        // Ok  SQL := 'DELETE * FROM Editeur2';
     
        // On verifie si la table existe
     
        Cmd.CommandText := SQL;
        Cmd.Set_ActiveConnection(Cnx);
     
        //RS.CursorLocation := adUseServer;
     
        RS.Open(Cmd, Emptyparam, adOpenKeyset, adLockOptimistic, adCmdText);
     
      except
        on E: Exception do
          ShowMessage('Erreur creation table '#13 + E.Message);
      end;
     
    end;
    Code commun aux deux fonctions
    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
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ADODB_TLB, ADOX_TLB, OleServer, ComObj;
     
    type
      TForm2 = class(TForm)
        cmdListeTable_Adox: TButton;
        cmdCreeBase: TButton;
        cmdCreeTable: TButton;
        CmdListeChampsRecordset: TButton;
        Memo1: TMemo;
        CmdListeChampsAdoxCatalog: TButton;
        cmdCreeIndex: TButton;
        cmdSupprimeTable: TButton;
        CmdListeTableOpenSchema: TButton;
        Button1: TButton;
        Button2: TButton;
        cmdOuvreConnexion: TButton;
        EditBaseDonnees: TEdit;
        GroupBoxTypeBase: TGroupBox;
        RadioButtonMdb: TRadioButton;
        RadioButtonAccdb: TRadioButton;
        cmdInfosAdoAdox: TButton;
        cmdPeuplerTable: TButton;
        CmdRazTable: TButton;
        procedure cmdCreeBaseClick(Sender: TObject);
        procedure cmdListeTable_AdoxClick(Sender: TObject);
        procedure CmdListeTableOpenSchemaClick(Sender: TObject);
        function ADOTypeToStr(const ADOType: DataTypeEnum): string;
        procedure CmdListeChampsRecordsetClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        function TableExist(nomtable: string): boolean;
        procedure cmdCreeTableClick(Sender: TObject);
        procedure cmdInfosAdoAdoxClick(Sender: TObject);
        procedure cmdCreeIndexClick(Sender: TObject);
        procedure cmdSupprimeTableClick(Sender: TObject);
        procedure CmdRazTableClick(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure CmdListeChampsAdoxCatalogClick(Sender: TObject);
    Bon courage

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 9
    Par défaut
    Merci pour votre aide
    mais il reste une chose le mot de passe comment faire pour crée un en mode programmation

Discussions similaires

  1. [WD10] connexion à une base de données Access 2007
    Par aldama dans le forum WinDev
    Réponses: 55
    Dernier message: 07/07/2011, 02h28
  2. [AC-2007] comment rafraîchir une base de donnée access 2007
    Par franckimmo dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/08/2009, 11h44
  3. [AC-2007] création de base de donnée access 2007
    Par corobella dans le forum Modélisation
    Réponses: 2
    Dernier message: 04/05/2009, 22h55
  4. Base de données Access 2007 vers base MySQL ?
    Par Lili72430 dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2007, 14h41
  5. Lire une base de données access 2007 avec access 2003
    Par gblanchard dans le forum Runtime
    Réponses: 6
    Dernier message: 08/05/2007, 02h59

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