PDA

Просмотр полной версии : Delphi and MS


Antony
22.10.2006, 14:05
Проблемка: нужно связать прогу на делфи с Excel'ем Access'ом. Особенно с Access. Т.е. если есть какойнить mdb-файл, то что б программа могла выдергивать из него необходимые данные.

Может у кого есть нормальные линки или какиенить доступные, понятные примеры?

win-kim
23.10.2006, 07:33
код

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleServer, ExcelXP;

type
TForm1 = class(TForm)
Button1: TButton;
ExApp: TExcelApplication;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
WorkBk : _WorkBook;
WorkSheet : _WorkSheet;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
A:OleVariant;//array[1..2, 1..2] of variant;
B:OleVariant;
k:Integer;
i:integer;
// B:OleVariant;
begin
ExApp.Connect;
// ExApp.DisplayAlerts[0]:=True;

//Инициализируем Excel
//не показывать сообщение о сохранении
// ExApp.DisplayAlerts[0]:=false;
//открываем Excel-файл
ExApp.Workbooks.Open('D:\Temp\book.xls',
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyP aram,EmptyParam,EmptyParam,EmptyParam,EmptyParam,E mptyParam, 0);

k:=20;
WorkBk:=ExApp.Workbooks.Item[1];
WorkSheet:=WorkBk.Worksheets.Get_Item(1) as _WorkSheet;
A:=VarArrayCreate( [0,k], varVariant );

for i:=0 to k do
A[i]:='A' + IntToStr(i);

// WorkBk.Activate(1);
// WorkSheet.Range['A1', 'A1'].Select;
WorkSheet.Range['A1', 'EE1'].Value2:=A;
// WorkSheet.Range. :='A1:A1';
//Вставляем в Excel ячейки с позиции указанной пользователем +
//WorkSheet.Cells.Item[1, 'A'] :='Hello!';

ExApp.Save;
ExApp.Quit;
ExApp.Disconnect;


end;

end.



win-kim добавил 23.10.2006 в 07:34
mdb файл можешь читать напрямую без использования COM-объектов

Antony
25.10.2006, 10:31
win-kim, спасибо. Пойду пробовать...