RSS订阅 | 匿名投稿
您的位置:网站首页 > 数据库 > 正文

Delphi将Excel导入Access

作者:admin 来源: 日期:2018/4/6 13:43:00 人气: 标签:

我连接数据库是使用了dbLink.udl文件来连接的,并且是动态创建的,这样做的好处就是无论代码转移到那个磁盘并且数据库文件改了名字,我们也只需要手动配置一下.udl文件,程序依然可以正常运行,免去了修改代码的麻烦。

例子很简单,直接给代码吧:

procedure TForm1.FormCreate(Sender: TObject);
begin
  AQry.ConnectionString := 'FILE NAME=' + ExtractFilePath(paramStr(0)) + 'dbLink.udl';
  AQry.Active := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ExConn: TADOConnection;
  AFile: string;
  sList: TStringList;
  aTable: string;
  ExQry: TADOQuery;
  i: integer;
begin
  if OpenDialog1.Execute then
    AFile := OpenDialog1.FileName;
  ExConn := TADOConnection.Create(Application);
  ExConn.Connected := False;
  ExConn.LoginPrompt := False;
  ExConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +AFile + ';Extended Properties=Excel 8.0;Persist Security Info=False';
  ExConn.Connected := True;
  sList := TStringList.Create;               
  ExConn.GetTableNames(sList);
  aTable := sList[0];
  if Pos('$', aTable)>0 then
    aTable := '[' + aTable + ']';
  ExQry := TADOQuery.Create(nil);
  ExQry.Connection := ExConn;
  ExQry.Close;
  ExQry.SQL.Clear;
  ExQry.SQL.Text := 'select * from' + aTable;
  ExQry.Open;
  sList.Free;
  if ExQry.RecordCount>0 then
  begin
    ExQry.First;
    for i := 1 to ExQry.RecordCount  do
    begin
      AQry.Open;
      AQry.Append;
      AQry.FieldValues['编号'] := ExQry.FieldValues['编号'];
      AQry.FieldValues['角色'] := ExQry.FieldValues['角色'];
      AQry.FieldValues['演员'] := ExQry.FieldValues['演员'];
      AQry.FieldValues['电视剧'] := ExQry.FieldValues['电视剧'];
      AQry.Post;
      ExQry.Next;
    end;
  end;
  ExConn.Free;
  ExQry.Free;
end;

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址:
下一篇:没有资料