DBGrid to StringGrid

0

Witam!

  1. Jak skopiowac, wyslac lub zapisac dane z bazy danych widocznej w DBGrid do StringGrid'a i odwrotnie ze StrinGrid'a do bazy danych widocznej w DBGrid?

Zrobilem cos takiego:

StringGrid1.Cells[1,1]:=
        DBGrid2.DataSource.DataSet.FieldValues['jakies_pole'];

No i pobiera mi dane z tego pola do StrinGrid'a. Jednak chcialbym, zeby pobieral mi dane (rekordy)
wszystkie. Wiem, ze to bedzie cos w petli, ale nie wiem jak ta petle zastosowac. Mam 12 pol roznego typu.

With lub For, ale nie wiem.

  1. Korzystam ze sciagnietego komponentu do exportowania danych z bazy danych (widocznej w DBGrid) do xls. A jest moze jakis komponent do "Importowania" danych z xls do tej samej bazy danych (widocznej w DBGrid). Bo z tymi komponentami w delphi do obslugi xls, nie umiem sobie poradzic, chociaz wolalbym.

Pozdrawiam

atp2000

0
with DBGrid2.DataSource.DataSet do
begin
  First;
  i := 1;
  while not EoF do
  begin
    StringGrid1.Cells[1, i]:= FieldValues['jakies_pole'];
    Next;
    Inc(i);
  end;
end;
0

ad1

i := 0;
Table1.First;

while not Table1.Eof do   //lub Query.Eof zależy co tam masz
  begin
    StringGrid1.Cells[i,1] := Table1.FieldByName('jakieśPole').AsString;
    StringGrid1.Cells[i,2] := Table1.FieldByName('jakieśPoleDrugie').AsString;
    //analogicznie pozostałe pola
    Table1.Next;
    Inc(i);
end;

ad2

procedure TForm1.ImportClick(Sender: TObject);
var
  ExcelApp : OleVariant;
  i : Integer;
begin
  if not OpenDialog1.Execute then Exit;
try
  try
    ExcelApplication1.Connect;
    ExcelApp := GetActiveOleObject('Excel.Application');
  except
    try
      ExcelApp := CreateOleObject('Excel.Application');
    except
      ShowMessage('Excel nie jest zainstalowany'+#13+'lub jest uszkodzony.');
      Exit;
    end;
  end;
  ExcelApp.Workbooks.Open(OpenDialog1.FileName);

  i := 1;          //zakładam że w pierwszym wierszu Excela są nagłówki
  while VarToStr(ExcelApp.Cells[i,1].Value) <> '' do
    begin
      Inc(i);
      Table1.Appened;
      Table1.FieldByName('JakieśPole').AsString  //lub inny typ
      := ExcelApp.Cells[i,1].Value;
      Table1.Post;
    end;
finally
  ExcelApp.Quit;
  ExcelApplication1.Disconnect;
end;

Pisane z "głowy" więc mogłem się gdzieś walnąć.
//Misiekd mnie uprzedził :)

0

Dopiero teraz moglem odpowiedziec.
Dzieki wielkie za odpowiedzi i mam nadzieje, ze rozwiaze swoj problem.

Jeszcze raz dzieki.

Pozdrawiam

atp2000

0

Dopiero teraz moglem odpowiedziec.
Dzieki wielkie za odpowiedzi i mam nadzieje, ze to rozwiaze moj problem.

Jeszcze raz dzieki.

Pozdrawiam

atp2000

1 użytkowników online, w tym zalogowanych: 0, gości: 1