さぁ アクセスをしもべにしよう 編{/hakushu/}
procedure TForm1.Button1Click(Sender: TObject);
var s: Variant;
accFormCount,accControlCount, i : integer;
// AccessTextBox : TAccessTextBox;
begin
AccessApplication1.Connect;
AccessApplication1.Visible := True;
AccessApplication1.OpenCurrentDatabase(
ExtractFilePath(ParamStr(0) )+ 'db1.mdb',false);
AccessApplication1.DoCmd.OpenForm('フォーム1'
,acNormal{0} ,'OutputAllFields','',acFormEdit{1},
acWindowNormal{0},'');
ListBox1.Clear; // フォームのリスト
ListBox2.Clear; // フォームに配置されたコントロール
s := false;
// 開いてからでないと取得できない。
for accFormCount := 0 to AccessApplication1.Forms.Count-1 do
begin
ListBox1.Items.Add(AccessApplication1.Forms.Item[accFormCount].Name);
if (AccessApplication1.Forms.Item[accFormCount].Name ='フォーム1') then
begin i := accFormCount; s := True; { break;} end;
end;
if s then
begin
s := AccessApplication1.Forms.Item[i].accFocus;
if (s.name='テキスト0') then s.text := 'わーい♪';
s := true;
end;
if s then
for accControlCount := 0 to AccessApplication1.Forms.Item[i].Controls.Count -1 do
begin
s := AccessApplication1.Forms.Item[i].Controls.Item[accControlCount];
ListBox2.Items.Add(s.name);
if s.name='ラベル1' then
s.Caption := '発見';// Form:フォーム1.テキスト0.Text
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
AccessApplication1.CloseCurrentDatabase;
AccessApplication1.Disconnect;
end;
OLEから操作の説明リンク
http://www.dsdt.info/tipps/?id=607