如何获取access数据库中表的列名,并且能根据第几列这样来引用该列的数据不胜感激

解决方案 »

  1.   

    参考
    http://blog.csdn.net/jinjazz/archive/2008/05/13/2441635.aspxaccess和excel原理一样
      

  2.   

    一楼的大哥,你给的是delphi中实现的吗
      

  3.   

    不好意思,没看清楚,以为在.Net版ADOConnection1.GetFieldNames(..);
    ADOConnection1.GetTableNames(..);
      

  4.   

    可以循环dataset的fields.count啊,或者查查Access有没有提供查找元数据的方法。
      

  5.   

    var
      i: Integer;
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Text := 'select * from 表名';
      ADOQuery1.Open;
      for i := 0 to ADOQuery1.FieldCount - 1 do
      begin
        ShowMessage('字段名: '+ADOQuery1.Fields[i].FieldName);
        ShowMessage('字段值: '+ADOQuery1.Fields[i].AsString);
      end;
    end;
      

  6.   


    TADOConnection.GetTableNames(List: TStrings;SystemTables: Boolean)链接以后,可以返回所有的TableName到List中给你一段我链接Excel的实例代码,同样适用于Access    if ConnectExcel(odFile.FileName) then
          adoConn.GetTableNames(cbTables.Items,False);
        if cbTables.Items.Count>0 then
          cbTables.ItemIndex := 0
        else begin
          ShowInfo('该Excel没有建立任何Sheet,请重新选择文件');
          exit;
        end;
        for i:=0 to cbTables.Items.Count-1 do
        begin
          //add by hyb 20080515 去掉Excel内部的表
          if (copy(cbTables.Items[i],Length(cbTables.Items[i]),1)='_') or
            (Pos('_FilterDatabase',cbTables.Items[i])>0)  then
              cbTables.Items.Delete(i);
        end;
      

  7.   

    ADOConnection1.GetFieldNames(); 最好