![]() |
Datenbank: Access • Zugriff über: noch gar nicht
Grundsätzlicher Zugriff auf Access-Datenbanken
Aloha,
ich möchte ein kleines Verwaltungsprogramm schreiben. Die Daten sollen in einer Access-DB abgelegt werden. In der Datenbank existieren noch keine Tabellen, die sollen beim ersten Eintrag angelegt werden. Nun bin ich allerdings völlig unbefleckt im Umgang mit Datenbank in Kombination mit Delphi, ich habe also rein gar keine Ahnung wie ich an die Sache rangehen soll geschweige denn welche Komponenten ich benutzen sollte. Da es eilt, habe ich nicht wirklich die Zeit mich durch die Api's zu wühlen, deswegen hoff ich hier schneller fündig zu werden. Also nun zu meinen Fragen.
mfg chuqa |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Zitat:
Das ist deutlich weniger Arbeit; man kann das Erzeugen der Datenbankstruktur aus der Anwendung auch später noch nachholen. Zitat:
TADOQuery (Standard-Komponente) TADODataset (bei erweiterten Anforderungen) TADOTable (bitte auf diese Komponente verzichten, wenn SQL für dich keine Fremdsprache ist) Zitat:
TADOQuery über Property Connection mit der TADOConnection verknüpfen. TADOQuery.SQL eingeben TADOQuery mit TDataSource verknüpfen, TDBGrid mit TDataSource verknüpfen und ADOQuery aktiv schalten. |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Auf maeiner Homepage findest du einige Code-Schnipsel:
- Wie du ![]() - Wie du mit ![]() Um festzustellen, welche Tabellen bzw. welche Felder einer Tabelle existieren, verwendest du die Methoden GetTableNames und GetFieldNames der TAdoConnection. Grüße Mikhal |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Herzlichen Dank erstmal, habe ein bißchen rumprobiert und müsste eigentlich hinzubekommen sein ;).
Trotzdem noch ein paar Fragen: Benötige ich für jede Komponente, die irgendwie eine Spalte oder eine ganze Tabelle enthält (DBGrid, DBListBox, DBComboBox) eine DataSource und eine ADOQuery oder reicht es, wenn ich während der Laufzeit die SQL-Property des ADOQuery änder und dann die Datenzugriffskomponente an die ADOQuery zuweise? mfg chuqa |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
DBGrid, DBEdit etc stellen lediglich dein Abfrageergebnis auf dem Bildschirm dar, also benötigen sie immer eine Datenquelle. Sie visualisieren nur das Abfrageergebnis oder dienen zur Erfassung neuer Daten oder von Datenänderungen.
Grüße Mikhal |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
hmm ok, dann anders,
gibt es eine möglichkeit, dass ich eine abfrage an die datenbank stelle und dann mit dem ergebnis etwas anstelle, also nicht dass ich das abfrageergebnis an eine komponente zuweise sondern anhand meines ergebnisses etwas ausführe, also z.b. ich betätige einen button, eine sql-abfrage wird ausgeführt und anhand des abfrageergebnisses wird z.b. eine meldung ausgegeben. mfg |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Natürlich geht das. bei einer DS kannst du z.B. mit der Eigenschaft .FieldByName('<feldname>').Value auf die Felder zugreifen.
|
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
ok danke erstmal, aber irgendwie begreif ich das ganze noch nicht richtig, sry.
also mal angenommen ich habe dbcombobox und zwei dbtext-komponenten. nun habe ich in meiner datenbank eine tabelle mit mehreren spalten. mal angenommen ich möchte nun die erste spalte der tabelle in der combobox abbilden. nun soll bei auswahl eines eintrages der combobox der zugehörige eintrag in der spalte 2 der tabelle in dem einem dbtext und der zugehörige eintrag in der dritten spalte in der anderen dbtext-komponente abgebildet werde. so nun: wie binde ich die datensteuerungskomponenten (dbcombobox,dbtext) an die datenbank an? wieviel datasource-komponenten mit welcher abfrage benötige ich? mfg |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Moin,
den drei Datensteuerungskomponeneten weist du die gleiche Datasource zu (Du brauchst also nur eine Datasource). Der Datasource weist du die AdoQery zu, die dein SQL-Statment enhält. Hasse |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Die Antwort
Zitat:
Zitat:
|
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Also habe ich gemacht, aber es wird nur der erste datensatz der tabelle angezeigt. in der tabelle befinden sich 3 datensätze, aber die combobox enthält wie gesagt nur den ersten. setze ich eine dbgrid-komponente dazu und verbinde diese mit der datasource so enthält sie alle datensätze. was mache ich falsch?
mfg |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
Am besten nimmst du eine DBLookupCombobox und setzt die LookupSource auf die dataSource der Abfrage und LookupField auf das gewünschte Feld.
|
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
jo, herzlichen dank, soweit hab ich das.
nun habe ich noch eine dbgrid-komponente, die die daten eine anderen tabelle anzeigt, allerdings soll die auswahl der daten davon abhängen, welcher eintrag in der dblookupcombobox ausgewählt wurde, also ich wähle in der dblookupcomobox eine liga aus. nun stehen in einer zweiten tabelle mannschaften, wobei ein eintrag eines datenasatzes die liga-id ist. es sollen dann nur die mannschaften ausgewählt und angezeigt werden, die die liga-id der ausgewählten liga enthalten. oder: ich lege pro liga eine extra tabelle an und wähle dann anhand der gewählten liga die entsprechende tabelle aus. welche methode ist die bessere und wie implementier ich das, im speziellen: wie übergebe ich dem sql-statement für die dbgrid die auswahl der dblookupcombobox-komponente? mfg |
Re: Grundsätzlicher Zugriff auf Access-Datenbanken
TQuery, welches im Grid angezeigt wird ist Detail des Queryies der LookupCombo.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz