ado组件可以写到自定义的函数或过程里吗?为什么提示不对!
如题,现写着玩一个打开ACCESS库的通用程序,过程开始都是写在ButtonClick里,后来想做得更通用,就想改写在自定义函数或过程里,可是不行,提示不对。下面是部分代码,那位知道的,提示一下。谢谢了。
[错误] Unit1.pas(49): Undeclared identifier: 'ADOConnection1'
- Delphi(Pascal) code
type TForm1 = class(TForm) Button1: TButton; DataSource1: TDataSource; DBGrid1: TDBGrid; ADOTable1: TADOTable; OpenDialog1: TOpenDialog; ListBox1: TListBox; Button2: TButton; ADOConnection1: TADOConnection; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure OpenDataBase(puk:string); procedure OpenTable(tabstr:string); end;var Form1: TForm1;implementation{$R *.dfm}varconstring,tname:string;procedure OpenDataBase(puk:string);vartablename:TStringList;begin try //puk:=OpenDialog1.FileName; constring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + puk + ';Persist Security Info=False'; ADOConnection1.ConnectionString:=constring; ADOConnection1.LoginPrompt:=False; ADOConnection1.Open; ADOConnection1.Connected:=True; ADOConnection1.GetTableNames(tablename); ListBox1.Items.AddStrings(tablename); except ShowMessage('只能打开ACCESS数据库文件,请重新选择!'); end;end;procedure OpenTable(tabstr:string);begin if ADOTable1.Active=False then begin if ListBox1.ItemIndex>=0 then begin tabstr:=ListBox1.Items.Strings[ListBox1.itemindex]; ADOTable1.Connection:=ADOConnection1; ADOTable1.TableName:=tabstr; DataSource1.DataSet:=ADOTable1; DBGrid1.DataSource:=DataSource1; ADOTable1.Open; end else ShowMessage('请选择数据库表!!'); endend;上面的编译通不过.
[解决办法]
可以的,
这样子:
procedure OpenDataBase(puk:string);
begin
Form1.adoconnection1.open;
end;
加上窗体名。
[解决办法]
procedure TForm1.OpenTable(tabstr:string);