AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neuling will Accesdatenbank anlegen

Ein Thema von Dark Angel · begonnen am 4. Jul 2008 · letzter Beitrag vom 5. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Dark Angel
(Gast)

n/a Beiträge
 
#1

Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 13:59
Hallo alle zusammen,

ich versuche set zwei Tageneine Access-Datenbank anzulgen und komm nur sehr mühdsam voran.

Mittlerweile bin ich mir gar nicht so sicher ob das so geht wie ich es will. Ich habe in meinem Programm einige Daten (Namen, Ort, Datum und Werte die vom Programm berechnet werden), diese will ich mit Klick auf einen Button ('Daten speichern') in eine Accessdatei speichern um sie später ansehen zu können.
Was ich jetzt bei meiner suche nach Hilfen gesehen hab ist, dass ich dann die Datenbank auch im Programm anzeigen lassen kann, das wäre evtl. auch noch schön wenn das bei mir ginge, dann könnte ich daraus daten weiterverwenden in meinem Programm.

Ich habs bereits geschafft die Datei *.accdb anzulegen, und jetzt würd ich gern die Spalten beschriften und über den BUtton daten in die accessdatei eingeben. Bei jedem klick in eine neue Zeile, wenn das geht.

Ich hoffe ihr könnt mir weiterhelfen

Danke

Mit freundlichen Grüßen
Markus
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#2

Re: Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 14:24
Hast du schon einmal mit Datenbank gearbeitet?

Ich würde dir empfehlen dir das mal anzuschauen Klick mich
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#3

Re: Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 14:52
Nein, ich hab noch nie mit Datenbanken in Verbindung mit Delphi gearbeitet, aber in Delphi kenn ich mich einigermaßen aus und ich dachte das kann ja nicht so schwer sein ein paar Daten ind die Tabelle der Accessdatenbank zu schreiben.

Dieses Tutorial kenn ich schon, hab ich mir auch durchgelesen aber wirklich schlauern bin ich jetzt nicht und irgendwie ist dass auch nicht das was ich machen will.
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#4

Re: Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 18:12
Um es nochmal deutlicher zu sagen, ich kann eine Datenbank erstellen, aber ich will dass die sich mit der accessdatei aktuallisiert. Also wenn ich das delphi programm lade soll das DBgrid die daten schon haben.

und zweitens will ich per buttonklick eine weitere zeile in die datenbank/dbgrid eintragen.


Wie geht das???
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 18:29
klick
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#6

Re: Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 19:04
@omata: tut mir leid aba ich weiß nicht wie mir dieser link helfen soll.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Neuling will Accesdatenbank anlegen

  Alt 4. Jul 2008, 19:18
Hallo Markus,

welche Delphi-Version verwendest du?
Wie hast du denn deine Datenbank erzeugt? In welchem Format?
Mit welchen Komponenten greifst du auf die Daten zu?
Kennst du den Unterschied zwischen Datenbank und Tabelle?
Weißt du was unter Normalisierung zu verstehen ist?
Hast du eine Vorstellung von Primary, Foreign und Candidate Keys?
Gibt es schon etwas Code, den du zeigen kannst?

Freundliche Grüße
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#8

Re: Neuling will Accesdatenbank anlegen

  Alt 5. Jul 2008, 03:10
@marabu
Ich verwende Delphi 2007.
Tja wie hab ich meine Datenbank erstellt...so wies im Tutorial stand ...in Delphi mit dataSource, Query, Connection, usw.
Das heißt glaub ich ADO.
Zugreifen?? Noch nicht klappt ja ned.
Also den Unterschied kenn ich wohl nicht so gut, ich wollte eigentlich nur eine DAtenbank erstellen, weil ich gern eine "Tabelle" in Access haben will anstatt in Excel.
Die Begriffe kenn ich alles nicht.
Code von mir kann ich zeigen, logo.


Delphi-Quellcode:
unit Datenbank;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, ADODB, DB, DBTables;

type
  TForm6 = class(TForm)
    DBGrid1: TDBGrid;
    Bt_zurueck: TButton;
    Btn_Beenden: TButton;
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    OpenDialog1: TOpenDialog;
    Btn_newtable: TButton;
    SaveDialog1: TSaveDialog;
    Btn_newdatabase: TButton;
    ADOQuery1Lufer: TStringField;
    ADOTable1: TADOTable;
    ADOTable1Adresse_Id: TAutoIncField;
    ADOTable1Lufer: TWideStringField;
    ADOTable1Ski: TWideStringField;
    ADOTable1Wachs: TWideStringField;
    ADOTable1Ort: TWideStringField;
    ADOTable1TemperatrinC: TStringField;
    ADOTable1Datum: TStringField;
    ADOTable1Zeit: TStringField;
    ADOTable1Lichtschrankenanzahl: TStringField;
    ADOTable1Gesamtstreckeinm: TStringField;
    ADOTable1Gesamtzeitins: TStringField;
    ADOQuery1Ski: TStringField;
    ADOQuery1Wachs: TStringField;
    ADOQuery1Ort: TStringField;
    ADOQuery1TemperaturinC: TStringField;
    ADOQuery1Datum: TStringField;
    ADOQuery1Zeit: TStringField;
    ADOQuery1Lichtschrankenanzahl: TStringField;
    ADOQuery1Gesamtstreckeinm: TStringField;
    ADOQuery1Gesamtzeitins: TStringField;
    procedure Bt_zurueckClick(Sender: TObject);
    procedure Btn_BeendenClick(Sender: TObject);
    procedure Btn_newtableClick(Sender: TObject);
    procedure Btn_newdatabaseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form6: TForm6;

implementation

uses Start_LS, Lichtschrankenabstand, Messanlage, Graph, ADOX_TLB;

{$R *.dfm}




                        // Beenden Button
procedure TForm6.Btn_BeendenClick(Sender: TObject);
begin
form5.close;
form2.close;
form4.close;
form3.Close;
close;
end;





procedure TForm6.Btn_newtableClick(Sender: TObject);

const
   // Zeilenvorschub..
   cCRLF = #13#10;
  // DDL-Statement für Access angepaßt...
   cCreateMessdaten = 'CREATE TABLE Messdaten(' + cCRLF
                + ' Adresse_Id counter,' + cCRLF // AutoWert
                        +   'Läufer varchar(8),' + cCRLF // Text Länge 8
                + 'Ski varchar(8),' + cCRLF
                + 'Wachs varchar(8),' + cCRLF
                + 'Ort varchar(8),' + cCRLF
                + 'Temperatur in °C varchar(8),' + cCRLF
                + 'Datum varchar(4),' + cCRLF
                + 'Zeit varchar(4),' + cCRLF
                + 'Lichtschrankenanzahl varchar(3),' + cCRLF
                + 'Gesamtstrecke in m varchar(3),' + cCRLF
                + 'Gesamtzeit in s varchar(3))';

var
   sDataSource: String; // ConnectionString
begin
   // Datenbank auswählen
   if OpenDialog1.Execute then
  begin
      if ADOConnection1.Connected then
       ADOConnection1.Connected := False;   // Bestehende Datenbankanbindung trennen
    // ConnectionString bestimmen
      sDataSource := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + OpenDialog1.FileName + ';Jet OLEDB:Engine Type=4';
    // neuen ConnectionString in ADOConnection schreiben
    ADOConnection1.ConnectionString := sDataSource;
    // Datenbankanbindung herstellen
      ADOConnection1.Connected := True;
    try
       // DDL-Statement in Property SQL schreiben
       ADOQuery1.SQL.Text := cCreateMessdaten;
      // DDL-Statement ausführen...
      ADOQuery1.ExecSQL;
      // DML-Statement zur Anzeige der Tabellendaten in die Property SQL schreiben
      ADOQuery1.SQL.Text := 'SELECT * FROM Messdaten';
      // DML-Statement ausführen...
      ADOQuery1.Open;
    except
       // xyz
    else
         // Fehlermeldung ...
       MessageDlg(Format('FEHLER!%sDie Tabelle Messdaten konnte nicht angelegt werden!', [#13#10]), mtError, [mbCancel], 0);
     end;
  end;
end;




     // Zurück Button
procedure TForm6.Bt_zurueckClick(Sender: TObject);
begin
close
end;






procedure TForm6.FormCreate(Sender: TObject);
begin
  ADOConnection1.Open;
end;







procedure TForm6.Btn_newdatabaseClick(Sender: TObject);
var
  sDataSource: String; // DB ConnectionString
  ADOXCatalog: TCatalog;
begin
   if SaveDialog1.Execute then
  begin
    if not FileExists(SaveDialog1.FileName) then
    begin
      ADOXCatalog := TCatalog.Create(nil);
       // den Dateinamen gibt es noch nicht: Neu anlegen
      // ConnectionString erzeugen
      sDataSource := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + SaveDialog1.FileName + ';Jet OLEDB:Engine Type=5';
      try
         // mit dieser Methode der Klasse TADOXCatalog wird die neue Datenbank angelegt
        ADOXCatalog.Create1(sDataSource);
            // Erfolgsmeldung ausgeben...
        MessageDlg(Format('ERFOLG!%sDie neue Datenbank%s%s%swurde angelegt!', [#13#10, #13#10, SaveDialog1.FileName, #13#10]), mtInformation, [mbOK], 0);
      except
        //
      else
         // Die Neuanlage hat nicht geklappt: Fehlermeldung ausgeben.
        MessageDlg(Format('FEHLER!%sDie neue Datenbank%s%s%skonnte nicht anglegt werden...', [#13#10, #13#10, SaveDialog1.FileName, #13#10]), mtError, [mbCancel], 0);
      end;
    end
    else
    begin
       // Fehlermeldung ausgeben, weil eine entsprechende Datenbank bereits existiert.
      MessageDlg(Format('Eine Datenbank mit dem Namen%s%s%sexistiert bereits!', [#13#10, SaveDialog1.FileName, #13#10]), mtInformation, [mbOK], 0);
    end;
  end;
end;

end.
ich weiß ja nicht ob das jmd hilft mir zu helfen aber gut, bitte.
  Mit Zitat antworten Zitat
rotfc
(Gast)

n/a Beiträge
 
#9

Re: Neuling will Accesdatenbank anlegen

  Alt 5. Jul 2008, 03:46
Das Anlegen von Datenbanken (*.mdb) mit Access ist außerordentlich einfach.

Nachdem man die *.mdb-Datei "erstellt" hat, fängt der Datenbankspaß erst an!

Access speichert die Daten in Tabellen (mindestens einer).

Die Tabelle(n) muß man in Access "entwerfen", d.h. man muß die Spaltenüberschriften und den Spalteninhaltstyp der Daten (Text, Zahl, Datum usw.) festlegen.

Erst nachdem die Tabelle(n) entworfen und gespeichert wurde, kann man die Tabelle(n) mit Daten zupflastern...

Das sollte bereits bekannt gewesen sein
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#10

Re: Neuling will Accesdatenbank anlegen

  Alt 5. Jul 2008, 09:39
ja das hört sich mal plausibel an und wie geht das "Entwerfen" einer Datenbank?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz