![]() |
DBGrid nach bestimmtem Feld sortieren....
Hallo ....
Ich lese eine Access Datenbank ohne Probleme in ein DBGrid ein ..... Die Datenbank weißt keinerlei Sortierungen auf ..... Unteranderem enthält meine Datenbank das Feld Name! Und ich möchte wenn meine DBGrid die datenbank liest, dass alle Datensätze nach Namen geordnet angezeigt werden!! Wie realisiere ich das?? thx angelus |
von Access hört man wenig / nichts gutes. Befindet sich Dein Programm noch ziemlich am Anfang würde ich Dir davon abraten. Soviel schon mal vorweg. Kann man damit SQL machen? Dann mußt Du das ganze mit ORDER BY <Spaltenname> machen. Falls nicht, ja dann muß jemand anders Dir sagen wie.
|
Nimm ruhi die AccessDB
Hallo,
die Antwort war schon richtig. Nimm Orderby und alles wird gut. Wenn Du bisher keine Probleme hattest, rate ich Dir mit der Access-DB weiter zu machen. Ich habe auch schon in der Richtung was gemacht und kann nur sagen, das es einwandfrei und ohne Problem lief. Und zu meinem Vorredner möchte ich nur kurz sagen, dass es ja sein kann, dass es hier und da Probleme mit Access-DB´s gibt. Aber es wäre doch auch fair diese Probleme beim Namen zu nennen. Tom |
Leider funktioniert es immer noch nicht .....
nein das funktioniert leider aucht nicht.....
ORDER BY <Kunde:> funkitioniert nicht ... :-( woran könnte es noch liege?? kann es sein das mit der Datenbank was nicht in ordnung ist?? |
machs mit einem Filter
Nun Du könntest es auch über einen Filter probieren:
DataModule1.ADOTable2.Filtered:=False;//deaktivieren DataModule1.ADOTable2.Filter:='MedienIndex ='+QuotedStr(DataModule1.ADOTable1.FieldByName('In dex').AsString);//sortiere den medienIndex nach dem Feld mit der Bezeichnung Index DataModule1.ADOTable2.Filtered:=True;//aktivieren Das sollte funzen Tom |
was ist ein datamodul?? und wo füge ich den code ein?
thx angelus |
Re: Nimm ruhi die AccessDB
Zitat:
|
Moin!
Hab ein ähnliches Problem: Möchte im DBGrid ein Feld "Titel" aus einer Paradox Datenbank namens DVDBank sortieren. Hab dazu folgende Routine versucht:
Delphi-Quellcode:
Wenn ich nun den Button klicke passiert: Nichts! Gar nichts, auch keine Fehlermeldung.
procedure TForm1.Button2Click(Sender: TObject);
begin Query1.close; Query1.Sql.Clear; Query1.Sql.Add('SELECT * FROM DVDBank order by Titel'); Query1.open; end; Wie muss man das denn machen, damit es funzt? Gruß Gambit |
hast Du da überhaupt irgendwelche visuellen Sachen in dem Programm ? DBgrid oder so ? Ist das alles auch richtig zugeordnet? Was ist mit DataSource (wegen Grid etc.) Ich sehe keinen Grund, warum es nicht gehen sollte.
|
Hallo,
ja, ich habe DBgrid drin. Also in den Properties von Query1 habe ich für DataSource und DatabaseName die gleichen Angaben wie in Table1 angegeben. Active auf true habe ich in Query1 nicht setzen können, dann kommt ne Fehlermeldung "Keine SQL Anweisung verfügbar". Gruß Gambit |
dann ist ja alles klar
|
Wie meinst du denn das nu? Mir ist das eigentlich gar nicht so klar. Warum gehts denn nu nicht?`
Gambit |
poste mal die DFM Deiner Form.
|
Mach ich glatt, wenn du mir sagst, was DFM ist. Sorry, bin noch leidlicher Anfänger in Delphi.
Gruß Gambit |
geh mit der rechten Maustaste auf die Form (nicht den Quelltext!), wähle "view as text", mach copy and passte und füge das ganze in Deinen Beitrag ein.
|
Aha, also doch...hab jetzt mal nur was die Form betrifft kopiert. Oder brauchst du alles?
Delphi-Quellcode:
Gruß
object Form1: TForm1
Left = 165 Top = 107 Width = 1139 Height = 801 Caption = 'DVD Datenbank Version 0.3' Color = clSkyBlue Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] Menu = MainMenu1 OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 Gambit |
Liste der Anhänge anzeigen (Anzahl: 1)
Oder doch lieber alles?
Dann aber doch lieber als Attach, was? Gruß Gambit |
Da steht zwar was mit einem Dateinamen, aber das wars dann schon, für Delphi ist das dann sozusogen eine untypisierte Datei. D.h. keinerlei Information, um was es sich handelt. Leider ist es Paradox, damit hab ich erst gar nicht angefangen. Versuche mal, ob Du mit der rechten Maustaste bei der Table oder der Query an so was wie SQL-Editor ran kommst.
|
Also da gibts einen SQL Builder, da kann ich auch Sortierungen mit durchführen. Und nu?
Gambit |
Hmm, der Builder sagt mir, dass die SQL Anweisung so aussehen muss:
SELECT * FROM "d:\Delphi7\Projects\DVD Datenbank\DVDBank.db" Dvdbank ORDER BY Titel Kannst du das umsetzen für Delphi? Ich komm da immer so innen Tüddel mit den Hochkommata... :oops: Gambit |
Zitat:
SQL-Code:
eingeben. Ein Index auf das Feld Titel wäre natürlich sehr hilfreich (ich glaube bei Paradox auch erforderlich).
SELECT * FROM DVDBank
ORDER BY Titel |
Ne, funzt auch nicht. Ich glaub, ich gebs auf. Montag mal noch ein Buch kaufen...trotzdem Danke!
Gambit |
Wer wird denn gleich die Flinte in's Korn werfen? :kotz: Was funktioniert nicht?
|
Es passiert nichts. Ich vermute, die SQL Anweisung läuft irgendwie ins Leere, als wenn sie nicht "weiß", dass sie dass Sortierergebnis im DBGrid ausgeben soll. Syntaktisch scheint mir der Befehl in Ordnung zu sein. Es gibt ja auch keine Fehlermeldung.
Gambit |
Hast Du die Query über eine DataSource mit dem dbGrid verknüpft?
|
Ja, glaub ich zumindest. Hab in der Property DataSource1 angegeben, was aderes geht auch nicht. Und die DataSource1 ist ja an die Tabelle angebunden.
Gambit |
Und das Query an eine TDatabase oder ähnliches?
|
An die TDataSource, da wo ich auch das DBGrid angebunden habe, also DataSource1. In der Property der Query "DataSource"
Ich weiß, ist etwas viel verlangt, aber könnte jemand nicht vielleicht über ein Kleinstprojekt das Ganze nachvollziehen? Viel braucht es ja nicht. Mit dem Tool Datenbankoberfläche ne kleine Paradox DB mit ein zwei Feldern und drei, vier Einträgen und ne Form mit dem DBGrid und die DataSource, Table und Query? Will jetzt aber nicht unverschämt sein... Gruß Gambit |
1. TDataBase.DatabaseName: test
2. TQuery.Database: test 3. TDataSource.DataSet: Query1 4. TDBGrid.DataSource: DataSource1 TQuery.SQL wie bereits beschrieben. TQuery.Active: True. Dann sollte es funktionieren. |
Moin!
So, bin wieder da. Hab jetzt nochmal ein Testprogramm geschrieben, welches, wie sollte es anders sein, auch nicht funzt. Wieso kann es denn so schwer sein, mittels SQL auf die Tabelle zuzugreifen. Ich könnte ja über den Index sortieren, aber es geht mir darum SQL Abfragen zu lernen. Habe jetzt auch noch eine TDatabase hinzugefügt. Die Eigenschaft Query Database gibts bei mir nicht, nur DatabaseName. Ich raffs nicht... Gambit |
Zitat:
|
Ich raffe nicht, warum es nicht funzt. Aber ich habe jetzt so eine Vermutung, dass man eine DBGrid, basierend auf einer TTable gar nicht mittels SQL so sortieren kann, wie ich mir das vorstelle. Vielleicht benötige ich eine zweite Ausgabe für die sortierten Datensätze? Oder können mittels SQL sortierte Datensätze auch in der selben DBGrid angezeigt werden, in der vor dem Sortieren die Datensätze aus der Paradox Tabelle angezeigt wurden?
Und, wenn es doch geht und du hast so ein Testproggy geschrieben, würdest du es mir evt. auch zur Ansicht zukommen lassen? Gruß Gambit |
Ich habe kein Testprogramm geschrieben aber es zumindest schon desöfteren gemacht. Beschreibe doch mal was passiert. Vielleicht schickst Du auch mal Dein Test-Projekt!
|
Kann ich machen, wohin soll ichs denn schicken?
|
Liste der Anhänge anzeigen (Anzahl: 1)
Habe jetzt auch schnell mal was zusammengeklickt. Läuft problemlos!
|
Probier ich mal aus, Danke!
Hab versucht, dir auch was zu schicken, kommt aber zurück... Gambit |
Komisch kommt immer zurück, machs jetzt auch über PM
Gruß Gambit |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 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