![]() |
Datenbank: Access • Version: 2003 • Zugriff über: ADO
TAdvStringGrid
Hallo,
Habe ein TAdvStringgrid mit 8 Spalten in einer Zeile. Möchte gerne über einen Button (Zeile selektiert) die 8 Spalte in einer Access Datenbank speichern! TADO Connection TADO Data Set Was muß ich dem Button sagen? var ??????????? begin ??????????????????? end; Würde ich über eine Lösung freuen :-) Gruß Andre:-D |
AW: TAdvStringGrid
ADO ist nicht meine Welt, aber ich denke, ein ADOCommand mit einem parametrisierten SQL sollte zum Erfolg führen.
Code:
Den Parametern feld1 bis feld3 (oder in Deinem Fall halt 8) weist Du die Werte der Spalten zu und führst dann mittels Execute das ADOCommand aus.
INSERT INTO Tabelle(Feld1, Feld2, Feld3)
VALUES(:feld1, :feld2, :feld3) |
AW: TAdvStringGrid
Hallo,
Delphi-Quellcode:
Wie Du das in Dein Ado rein bekommst entzieht sich meiner Kenntnis.
Function AchteSpalte:String;
begin Result := ''; With ADVStringGrid1 do If Length(Cells[8,Row]) > 0 then Result := Cells[8,Row]; end; Gruß :D Milo |
AW: TAdvStringGrid
Moin, Moin,
also willst Du nur die achte Spalte speichern ? oder willst du alle 8 Spalten speichern, und dann wie in der Tabelle ? pro Spalte ein Datenbankfeld oder pro Spalte eine Zeile in der Datenbank.... 8-) Gruß Michael |
AW: TAdvStringGrid
Hallo,
möchte nur die 8 Spalte speichern! Gruß Andre |
AW: TAdvStringGrid
Alle Werte der 8. Spalte? Gibt es irgendwelche Kriterien, welche Daten zu welchen gehören?
|
AW: TAdvStringGrid
Hallo,
alle werte der achten spalte [inhalt] oder was meinst du? gruß andre |
AW: TAdvStringGrid
Das meinte ich. Ich habe kein AdvStringGrid, aber ungefähr so sollte es gehen:
Delphi-Quellcode:
for i := ADVStringGrid1.FixedRows to ADVStringGrid1.RowCount - 1 do
begin s := ADVStringGrid1.Cells[7, i]; ADOCommand.Parameters.ParamByName('param').Value := s; ADOCommand.Execute; end; |
AW: TAdvStringGrid
Nimm einfach meine Funktion und weise den Wert der 8ten selektierten Spalte einem Datenbankfeld zu.
Delphi-Quellcode:
Gruß :D Milo
ADOCommand.Parameters.ParamByName('param').Value := AchteSpalte;
ADOCommand.Execute; |
AW: TAdvStringGrid
Und dann hat er genau einen Wert, oder verstehe ich Deine Funktion falsch?
|
AW: TAdvStringGrid
Zitat:
Ansonsten kann man es ja um eine Schleife erweitern, die "nCount = 0 to AdvStringGrid1.RowCount -1" durchzählt. Gruß :D Milo |
AW: TAdvStringGrid
Deshalb hatte ich in #6 noch einmal nachgefragt. Allerdings bleibt mir der Sinn einer Funktion hierfür immer noch verborgen, da es damit in diesem Fall ja sogar umständlicher wird.
|
AW: TAdvStringGrid
Ich sollte vielleicht was anderes testen!
wie gesagt habe ein stringgrid mit 8 spalten und endlose zeilen! wenn ich mich zb. in zeile 5 befinde und button1 drücke, sollte der inhalt aus spalte 8 im memo1 angezeigt werden. |
AW: TAdvStringGrid
Das ist doch dasselbe in Grün:
Delphi-Quellcode:
Memo.Lines.Clear;
for i := ADVStringGrid1.FixedRows to ADVStringGrid1.RowCount - 1 do begin s := ADVStringGrid1.Cells[7, i]; Memo.Lines.Add(s); end; |
AW: TAdvStringGrid
Oder:
Delphi-Quellcode:
:)
procedure Form1.Button1Click(Sender:TObject);
begin Memo1.Lines.Clear; Memo1.Lines.Add(AdvStringGrid1.Cells[7,AvancedStringGrid1.SelectedRow]); end; |
AW: TAdvStringGrid
[DCC Fehler] UnitMain.pas(409): E2029 '[' erwartet, aber ']' gefunden
es geht leider nicht! wieso? |
AW: TAdvStringGrid
Sorry, Korrektur:
Delphi-Quellcode:
Ggf auch noch prüfen ob überhaupt so viele Spalten vorhanden sind ...
procedure Form1.Button1Click(Sender:TObject);
begin Memo1.Lines.Clear; Memo1.Lines.Add(AdvStringGrid1.Cells[7,AvancedStringGrid1.Row]); end; Gruß :D Milo |
AW: TAdvStringGrid
Testprojekt mit einem StringGrid auf der Form das mindestens 8 Spalten enthält. Die Anzahl der Zeilen ist mehr als zwei...:
Delphi-Quellcode:
function TForm1.AchteSpalte: String;
begin With AdvStringGrid1 do if Length(Cells[8,Row]) > 0 then Result := Cells[8,Row] else Result := ''; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(AchteSpalte); end; procedure TForm1.FormCreate(Sender: TObject); Var nI, nL : Integer; begin for nI := 1 to AdvStringGrid1.RowCount - 1 do for nL := 1 to AdvStringGrid1.ColCount - 1 do AdvStringGrid1.Cells[nL,nI] := Chr(64 + nL + ni); end; |
AW: TAdvStringGrid
super ! geht !
aber es wir so im memo angezeigt! <font color="clBlue"> Text aus Spalte 8 </font> aber erstmal danke procedure Form1.Button1Click(Sender:TObject); begin Memo1.Lines.Clear; Memo1.Lines.Add(AdvStringGrid1.Cells[7,AvancedStringGrid1.Row]); end; geht super |
AW: TAdvStringGrid
Dann ist Deine Spalte 8 vermutlich ein formatiertes Textfeld.
Gruß :D Milo |
AW: TAdvStringGrid
was nun sieht blöd aus :-)
|
AW: TAdvStringGrid
Zitat:
Gruß :D Milo |
AW: TAdvStringGrid
natürlich ! bin schon am googeln! :shock:
|
AW: TAdvStringGrid
Zitat:
TBDAdvGrid ![]() TAdvStringGrid ![]() |
AW: TAdvStringGrid
Zudem sagt der Titel deines Beitragers wieder nichts über dein Problem aus!
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 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