比如一个*.mdb(ACCESS文件)
里面有两张表:BasicInfo.db和Grade.db
我想一按按键open,就能在opendialog中选择一个*.mdb
然后把该文件的用Query1,Query2把两张表分别打开:
Query1.Close;
Query1.SQL.Add('select * from BasicInfo;');
Query1.Open;Query2.Close;
Query2.SQL.Add('select * from Grade;');
Query2.Open;
是不是要用到Tdatabase(建立数据库)?
请问怎么用?

解决方案 »

  1.   

    //我想一按按键open,就能在opendialog中选择一个*.mdb
    你的这个运作只能说是选定了数据库文件。
    但要对这个数据库进行操作,先要联接到这个数据库,然后才能你所谓的select 操作。关于如果动态地联接数据库,你可以在CSDN上查一下,类似的帖子太多了。
      

  2.   

    alinsoft(艾林):

    我要的正如你所说功能
    你能够给我介绍一下用什么控件吗
    是不是database?
      

  3.   

    我这样做,但是提示出错:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    opendialog1.Execute;
    if(opendialog1.FileName<>'') then
    begin
    database1.DatabaseName:=opendialog1.FileName;
    Query1.Database:=database1;
    Query1.Close;
    Query1.SQL.Add('select * from 基本信息表;');
    //其中database1是一个TDatabase组件
    //还有一个Datasource,它的Dataset是Query1
      

  4.   

    你要先有一个TADOConnection控件,在ADO控件页里。
    用ADOConnection联接上之后,你可以用TADOQuery控件,里面有个connection属性指向刚才建好的ADOConnection1。你如果还要使用这个数据源,则还要加一个TDataSource控件,将其中的DataSet属性指向刚才的ADOQuery1。这样,你在用ADOQuery1进行查询时,DataSource1里就会有相应的数据。
    ADOConnection1.Close;
        ADOConnection1.Connected:=false;
        ADOConnection1.ConnectionString:='';
        str:=Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Mode=ReadWrite;Extended Properties="DSN=MS Access Database;DBQ=.\data\mydb.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=.\data\mydb.mdb;
        ADOConnection1.Connected:=true;
        ADOConnection1.Open;
      

  5.   

    你需要根据你实际取得的文件名替代代码里的=.\data\mydb.mdb
    ADOConnection1.ConnectionString:=str;   再加上这句,刚才写丢了。
    ADOConnection1.Connected:=true;
    其它的你自己再调试一下吧
      

  6.   

    谢谢你
    我照做了:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    str:string;
    begin
    opendialog1.Execute;
    if(opendialog1.FileName<>'') then
    begin
    ADOConnection1.Close;
        ADOConnection1.Connected:=false;
        ADOConnection1.ConnectionString:='';
        str:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Mode=ReadWrite;Extended Properties="DSN=MS Access Database;DBQ=.\data\mydb.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog='+opendialog1.FileName;         // .\data\mydb.mdb;
        ADOConnection1.ConnectionString:=str;
        ADOConnection1.Connected:=true;
        ADOConnection1.Open;
    end;
    end;
    我把一个DBGrid连到Datasource1上,而Datasource1的Dataset也设置了ADOQuery
    但是提示错误:
    [microsoft][micorsoft access driver]找不到文件‘(未知的)’。
    (本来我想从ADOQuery中的SQL填入‘select * from BasicInfo;’)
    请帮忙
    谢谢你啊
      

  7.   

    用一个ADOConnection连到这个*.mdb
    放一个adoquery connection指向这个ADOConnection
    adoquery.close;
    adoquery.sql.add('select * from '+opendialog1.FileName);
    adoquery.open;
      

  8.   

    faint!delphi的东西怎么弄到这里来了。
    在vc里面的两种方法:
    odbc数据源:ADOConn->Open("DSN=Trade_MIS;Provider=MSDASQL","sa","",adConnectUnspecified);
    其中Trade_MIS是ODBC数据源名。
    直接操作Access数据库
    ADOConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data\\Source=DEMO.mdb","","",adModeUnknown);
      

  9.   

    打开两个mdb文件,你需要先获取文件名,然后根据不同的文件名,构造不同的连接字符串。
    CString link;
    CString File1="DEMO.mdb";
    CString File2"DEMO2.mdb;
    然后构造连接字符串:
    link="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+File1;
    ADOConn->Open(link,"","",adModeUnknown);第二个文件类似...