怎么样把access 里的数据和delphi连接,能不能给出源代码??谢谢!!!
比如一个db1.mdb里有一个ry_jbxx的表,表里面有ID、LJ_id、xm等字段,现在我想通过delphi把这些字段的内容显示出来,请问应该怎么做,请给出源代码,多谢了。

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, Grids, DBGrids;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOTable1: TADOTable;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
       ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\hmily\My Documents\db1.mdb;Persist Security Info=False';
       ADOConnection1.KeepConnection:=True;
       ADOConnection1.LoginPrompt:=false;   ADOTable1.Connection:=ADOConnection1;
       ADOTable1.TableName:='ry_jbxx';
       ADOTable1.Active:=True;   DataSource1.DataSet:=ADOTable1;   DBGrid1.DataSource:=DataSource1;end;end.
      

  2.   

    用odbc連﹐這是連接的問題﹐不要什么代碼.
      

  3.   

    刚刚在朋友们的帮助下解决了自己的问题,不敢独享,有什么不对的地方请帮忙指出来,谢啦!unit main;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, DBGrids, DB, ADODB;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        procedure FormShow(Sender: TObject);  private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    beginwith ADOConnection1 do
    beginConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\我的文档\db1.mdb;Persist Security Info=False';     {把库文件设成自己的}
    KeepConnection := True;
    LoginPrompt := False;
    end;with ADOQuery1 do
    begin
    close;
    Connection := ADOConnection1;SQL.Text := 'select * from [User]';    {这里改成你自己的select语句就好}Open;
    end;DataSource1.DataSet := ADOQuery1;DBGrid1.DataSource := DataSource1;end;
    end.
      

  4.   

    借个地方问一下,如果连接sqlserver2000呢
    adoconnection ConnectionString怎么写啊
      

  5.   

    有必要吗?
    直接用ODBC连接,然后select不就行了?
      

  6.   

    去看以下asp中ado的连接方式就懂了。
      

  7.   

    dephi6+access ado
    先在ODBC里添加一个数据源
    ////////////////////////////////////
    var
      FlashForm: TFlashForm;
      path:string;
      MyInifile:TINIFILE;
      DATA_SOURCE,DBQ,Initial_catalog:string;
    begin
      Application.Initialize;
      FlashForm:=TFlashForm.Create(application);
      FlashForm.Show;
      FlashForm.Update;  Application.CreateForm(TDataMo, DataMo);
      path:=ExtractFilePath(Application.ExeName);
      MyInifile:= TIniFile.Create(path+'app.ini');
      DBQ:='Provider=MSDASQL.1;Password="";Persist Security Info=True;';
      DATA_SOURCE:='DATA SOURCE='+MyInifile.ReadString('DATABASE','DATA_SOURCE','')+';';
      Initial_catalog:='Initial Catalog='+path+'data\'+MyInifile.ReadString('DATABASE','DATA_SOURCE','')+';' ;
      DataMo.ADOConnect.Connected;
      DataMo.ADOConnect.Close ;
      DataMo.ADOConnect.ConnectionString:=dbq+DATA_SOURCE+initial_catalog;
      DataMo.ADOConnect.DefaultDatabase:=path+'data\'+MyInifile.ReadString('DATABASE','DATA_SOURCE','');
      //showmessage(DataMo.ADOConnect.ConnectionString);
      FlashForm.close;
      FlashForm.Free;
      Application.CreateForm(TMainForm, MainForm);
      Application.Run;
    end.dephi6+oracle817 ado
    ///////////////////////////////
    var
      SendData: tagCOPYDATASTRUCT;
      password,USER_ID:STRING;
      Provider,DATA_SOURCE,SECURITY_INFO:STRING;
      MyInifile:Tinifile;
    {$R *.res}begin
      //-----------------------判断程序是否第一次运行--------------------
      if FindWindow('TMainForm', nil) > 0 then
      begin
        with SendData do
        begin
          dwData := 0; // may use a value do identify content of message
          cbData := SizeOf(PChar(ParamStr(1))) + 1; //Need to transfer terminating #0 as well
          lpData := PChar(ParamStr(1))
        end;
        SendMessage(FindWindow('TMainForm', nil), WM_CopyData, 0, integer(@SendData));
        application.MessageBox('程序已经运行!','系统提示',16);
      //-----------------------------------------------------------------
      end else
      begin
      FlashForm:=TFlashForm.Create(application);
      FlashForm.Show;
      FlashForm.Update;
      Application.Initialize;
      Application.Title := '初始化辅助工具';
      Application.CreateForm(TMainForm, MainForm);
      Application.CreateForm(TDataM, DataM);
      //------------------- 数据库参数初始化-----------------------------
       path:=ExtractFilePath(Application.ExeName);
       MyInifile:= TIniFile.Create(path+'INITTOOLs.ini');
       PROVIDER:='PROVIDER='+MyInifile.ReadString('DATABASE','PROVIDER','')+';';
       password:='Password=manager'+';';
       USER_ID:='User ID=SYSTEM;';
       DATA_SOURCE:='DATA SOURCE='+MyInifile.ReadString('DATABASE','DATA_SOURCE','')+';';
       SECURITY_INFO:='Persist Security Info=True';
       DataM.ADOConnection1.Connected;
       DataM.ADOConnection1.Close ;
       DataM.ADOConnection1.ConnectionString:=PROVIDER+Password+USER_ID+DATA_SOURCE+SECURITY_INFO;
      //-----------------------------------------------------------------
      TRY
        if DataM.ADOConnection1.Connected<>TRUE then
        DataM.ADOConnection1.Connected:=true;
      EXCEPT
        APPLICATION.MessageBox('不能连接上ORALCE!可能原因:'+#13+'    1.检查网络是否连接正确'+#13+'    2.检查ORACLE客户端配置'+#13+'请联络系统管理员!','系统提示',16);
        application.Terminate;
      end;
      FlashForm.hide;
      FlashForm.Free;
      Application.Run;
      end;
    end.
      

  8.   

    如果有ACCESS+ADO的话就不用设置ODBC
    直接在ADOTABLE中设置connecttionstring不就行了!
    要显示单独的安段,就写个select 字段名 from 表名
    不就OK啦!
      

  9.   

    to:yzbaby(我是快乐的) 
    connectionstring属性可以不用手写的!双击ADOConnection1弹出,选“build”,然后在“提供程序”中选择相应的驱动,然后在“连接”中填好数据库、登录用户等信息即可。
      

  10.   

    ----------------------------------------------------------------------------------
    unit sysPublc;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,Inifiles,DB,ADODB;CONST
      MAINDB='data.mdb';
      DBPATH='data';  
    var
      MyIniFile:TInifile;
      DataSet:string;
      Function ReadIni(IniName,segment,lname:string):string;
                    //文件名  段名  小节名
      Function WriteIni(IniName,segment,lname,lvle:string):Boolean;
                    //文件名  段名  小节名  值
      Function LinkData:Boolean;
      Function GetExeDir:string;
      Function GetData:string;
      Function FromADOConngetDada(sign,str:string;time:integer):string;
                                //查找的字符  选择的字串  循环的次数implementationuses DataModule, MainForm;Function WriteIni(IniName,segment,lname,lvle:string):Boolean;
    begin
    result:=true;
    try
    MyIniFile.WriteString(segment,lname,lvle);
    MyIniFile.Destroy;
    Except
    showmessage('存储INI文件时出错!');
    result:=false;
    end;
    end;Function ReadIni(IniName,segment,lname:string):string;
    varlIniName:string;
    a:string;
    begin
    try
    lIniName:=ExtractFilePath(paramstr(0))+IniName;
    MyIniFile:=TInifile.Create(lIniName);
    a:=MyIniFile.ReadString(segment,lname,'');
    result:=a;
    Except
    showmessage('读取INI文件时出错');
    end;
    end;
        //Provider=Microsoft.Jet.OLEDB.4.0;Data Source=       ;Persist Security Info=FalseFunction GetExeDir:string;
    var
    s,s1:string;
    begin
    s:=application.ExeName;
    s1:='';
    while pos('\',s)<>0 do
      begin
      s1:=s1+copy(s,0,pos('\',s));
      s:=copy(s,pos('\',s)+1,length(s));
      end;
    result:=s1;
    end;Function GetData:string;
    begin
    result:=GetExeDir+DBPATH+'\'+MAINDB;
    end;Function LinkData:Boolean;
    var
    IniVle,DataPath:string;
    openDL:TOpenDialog;
    begin
    IniVle:=ReadIni('text.ini','data','dataVle');
    result:=true;
    Try
    DM.ADOConn.Connected:=false;
    if IniVle<>'' then
    begin
    showmessage('能过INI');
    DM.ADOConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
             IniVle + ';Persist Security Info=False'  ;
    end
    else
    begin
    showmessage('能过相对路径');
    DM.ADOConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
             GetData+ ';Persist Security Info=False';
    end;
    DataSet:=DM.ADOConn.ConnectionString ;
    DM.ADOConn.ConnectionTimeout:=10;
    DM.ADOConn.Connected:=true;showmessage('数据库连接成功');
    except
    if Application.MessageBox('连接数据库出错,是否重新连接数据库','数据库连接错误',mb_okcancel)=idok then
      begin
      openDL:=TOpenDialog.Create(nil);
      with openDL do
        begin
        Filter:='数据库文件(*.mdb)|*.mdb';
        InitialDir:=ExtractFileDir(Application.ExeName);
        end;
      if not openDL.Execute then Exit;
      DataPath:=openDL.FileName;
      DM.ADOConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
             DataPath+ ';Persist Security Info=False';
      DataSet:=DM.ADOConn.ConnectionString ;
      DataSet:=DM.ADOConn.ConnectionString ;
      DM.ADOConn.ConnectionTimeout:=10;
      DM.ADOConn.Connected:=true;
      end;
    end;
    end;Function FromADOConngetDada(sign,str:string;time:integer):string;
    var
    s,s1:string;
    j:integer;
    begin
    j:=0;
    s1:='';
    result:='';
    s:=str+sign;
    //showmessage(s);
    try
    while (pos(sign,s)<>0) and (j<>time) do
      begin
      s1:=copy(s,0,pos(sign,s)-1);
      s:=copy(s,pos(sign,s)+1,length(s));
      j:=j+1;
      end;
    result:=s1;
    except
    showmessage('没有需要查找的字符串');
    result:='';
    end;
    end;
    end.
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------unit DataModule;interfaceuses
      SysUtils, Classes, Windows, Messages,  Variants,
      Graphics, Controls, Forms, Dialogs, DB, ADODB;type
      TDM = class(TDataModule)
        ADOConn: TADOConnection;
        procedure DataModuleCreate(Sender: TObject);
        procedure DataModuleDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      DM: TDM;implementationuses sysPublc, MainForm;{$R *.dfm}procedure TDM.DataModuleCreate(Sender: TObject);
    beginLinkData;
    end;procedure TDM.DataModuleDestroy(Sender: TObject);
    var
    s:string;
    begin
    s:=FromADOConngetDada('=',FromADOConngetDada(';',DataSet,2),2);
    WriteIni('test','data','dataVle',s)
    end;end.
    ---------------------------------------------------------------------------------