AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Im DBGrid soll anstelle von 1234,23 - 1.234,23 erscheinen
Thema durchsuchen
Ansicht
Themen-Optionen

Im DBGrid soll anstelle von 1234,23 - 1.234,23 erscheinen

Ein Thema von m-werk · begonnen am 6. Aug 2002 · letzter Beitrag vom 8. Aug 2002
Antwort Antwort
Seite 1 von 2  1 2      
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#1

Im DBGrid soll anstelle von 1234,23 - 1.234,23 erscheinen

  Alt 6. Aug 2002, 19:35
Hi, so nun habe ich wieder was bemerkt.

Ich habe ja eine Access-DB.

Wie kann ich es anstellen, dass wenn ich z.B. 1000 eingebe dass dann im DBGrid, dann so erscheint 1.000

Oder ich gebe 1234,23 ein. Erscheinen soll dann im DBGrid 1.234,23

Das DBGrid greift ganz normal auf die Access-DB zu. Ich hab leider nichts gefunden, wo ich das einstellen kann. Ich verwende Access 2000.

Kann man das auch im Programm selbst lösen, damit ich bei der Datenbank nichts mehr ändern muß?

Kann mir da jemand helfen?
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 6. Aug 2002, 19:38
Wenn Du in der ADOTable (bzw. ADOQuery) die einzelnen Felder bearbeitest, dann kannst Du das DisplayFormat ändern. Dort kannst Du das gewünschte Format einstellen. Einfach mal in den Objekt Inspektor gehen und nachschaun (F1 listst alle Möglichkeiten).

Wenn Du noch weitere Infos brauchst, poste einfach noch einmal. Ich habe gerade nur wenig Zeit.
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#3
  Alt 6. Aug 2002, 19:51
Hi, danke, das hat mir sehr weitergeholfen. Zu diesem Thema habe ich jetzt keine Frage mehr.

Ich habe aber noch eine andere Frage.

In meiner Datenbank sind ja einige Tabellen.
Im Programm sind diese Tabellen verknüpft über die KundenNr

Wenn ich jetzt vom Hauptprogramm einen Kunden lösche, wie kann ich es anstellen, dass von den anderen Tabellen diese Werte, die dem Hauptkunden zugeordnet sind, auch gelöscht werden?

Im Programm ist es jetzt so das wenn ich den Hauptkunden lösche, auch die anderen Werte nicht mehr ersichtlich sind (KundenNr zugeordnet)

Aber in der Access-DB sind diese Werte noch drinn.
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 6. Aug 2002, 20:03
Hallo m-werk,

dazu könntest du in der AfterDelete (oder BeforeDelete) Methode ein SQL Statement einer TQuery Komponente ausführen:

Code:
DELETE FROM Tabelle2 WHERE KNr = :KNr
Durch den Doppelpunkt vor dem KNr wird ein Parameter erzeugt, den du z.B. über ParamByName zugreifen kannst:

Code:
DelQry.ParamByName('KNr').AsString := KundenNr;
DelQry.ExexSQL;
ShowMessage(IntToStr(DelQry.RowsEffected)+' Datensätze gelöscht.');
Dabei ist DelQry der Name der Lösch TQuery, KundenNr die zu löschende Kundennummer als String.

Übrigens liefert RowsEffected die Anzahl der betroffenen Datensätze.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#5
  Alt 6. Aug 2002, 20:16
Hi, das hab ich jetzt nicht ganz kapiert.

So sieht zur Zeit der Code im Hauptformular aus, wenn ich einen Hauptkunden löschen möchte.

Code:
procedure TKundendaten.DeleteClick(Sender: TObject);                          
begin
 if MessageDlg('Wollen Sie den Datensatz wirklich löschen?',
    mtWarning,[mbYes, mbNo], 0) = mrYes then
 begin
    try
      DM.ADOSHaupt.Delete;
    except
      on exception do
         MessageDlg('Keinen Datensatz zum löschen gefunden!',
         mtWarning,[mbOk], 0);
    end;
 end;
end;

Wie und wo kann ich deinen Code einsetzen?
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6
  Alt 6. Aug 2002, 20:26
Hallo m-werk,

den SQL Code weist du einer neuen TQuery Komponente in ihrer Eigenschaft SQL zu. Diese Komponente nennst du (Eigenschaft Name) DelQry. Die DataBaseName dieser Kompo muss natürlich auf die korrekte Datenbank (ALIAS) zeigen.

Den Code, der unten steht, schreibst du in die Methode, die du dem Ereignis AfterDelete von ADOSHaupt zuweist.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#7
  Alt 6. Aug 2002, 20:33
Hi, ich habs noch immer nicht.

Ich habe jetzt mal ne ADOQuery2 erstellt. Diese hat den Namen 'DelQry' Die connection bezieht sich auf die ADOConnection, diese wiederum auf die Datenbank.

Wie muß ich jetzt schritt für schritt weitergehen? Ich komm nicht dahinter!
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#8
  Alt 6. Aug 2002, 20:39
Hallo m-werk,

jetzt kannst du die Eigenschaft SQL von DelQry anklicken und den 1. Code eingeben.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#9
  Alt 6. Aug 2002, 20:46
OK, das hab ich jetzt mal gemacht. Ich habe anstelle Tabelle1 ADOSKinder eingegeben.

Muß ich nicht anstelle KNr = :KNR
KundenNr = :KundenNr
eingeben? Ich habe in jeder Tabelle die Zuordnung mit KundenNr gemacht!

Und den anderen Code muß ich beim Löschen Button eingeben, oder?

Was ist mit den anderen Tabellen, die ich so habe? muß ich immer eine neue ADOQuery erstellen?

Wenn ja, wie sieht dann der Code beim Löschen button aus wenn ich auch andere Querys erstellen muß?
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#10
  Alt 6. Aug 2002, 20:52
Hallo m-werk,

KundenNr sollte eine Variable sein, die die Kundennummer des Kunden enthält, der gerade gelöscht werden soll.

:Knr kannst du ruhig stehen lassen, da damit nur ein Parameter erzeugt wird, der einen beliebigen Namen haben darf. Die spätere Zuweisung mit ParamByName setzt dann den Parameter auf den gewünschten Wert.

Den 2. Code solltest du nicht unbedingt beim Löschen-Button eingeben, weil sonst z.B. bei anderen Wegen einen Datensatz zu löschen der Code evtl. nicht ausgeführt wird. Ich schlage vor das Ereignis AfterDelete von ADOSHaupt doppelzuklicken und dort den Code hinzuschreiben.
Albert
Live long and prosper


MrSpock
  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 04:52 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