解决方案 »

  1.   

    ADOConnction1.GetTableNames(ListBox1.Items);
      

  2.   

    上面的错了
    ADOConnection1.GetTableNames(ListBox1.Items,False);
    http://community.csdn.net/Expert/topic/3203/3203036.xml?temp=.2080194
      

  3.   

    直接用
    SELECT Name from MSysObjects where flags=0 and type>0 and id>0
    就行了。
    字段Name里保存的就是表名称。
      

  4.   

    GetFieldNames(listbox.Items);获得字段名
      

  5.   

    本范例使用 OpenSchema 方法来显示 Pubs 数据库中每个表的名称和类型。
    http://access911.net/index.asp?board=4&mode=3&recordid=73FAB61E17DC kiboisme(还是铁棒.....针) 兄弟的方法正确,但可能没有权限
      

  6.   

    AC1.Connected :=true;
         combobox1.Items.Clear ;
          AC1.GetTableNames(combobox1.Items,false);
         combobox1.ItemIndex :=0;
         At1.TableName :=combobox1.Text ;
         At1.Open ;
         combobox2.Items.Clear ;
         At1.GetFieldNames(combobox2.items);
         combobox2.ItemIndex :=0;
      

  7.   

    这里是我最后做的结果,贴出来,方便大家以后参照,结帐了
    if ChkKhwl.Checked=true then
            begin
                if FileExists(EdtMdb.Text)=false then
                begin
                    MessageBox(Application.Handle,'文件不存,请检查后再试!','提示',MB_OK+MB_ICONWARNING);
                    EdtMdb.SetFocus;
                    EdtMdb.SelectAll;
                    Exit;
                end;
                try
                    TempAdoConn:=TAdoConnection.Create(nil);
                    TempAdoConn.LoginPrompt:=false;
                    TempAdoConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+EdtMdb.Text+';Persist Security Info=False';
                    try
                        TempAdoConn.Open;
                        ListBox1.Clear;
                        TempAdoConn.GetTableNames(ListBox1.Items,False);
                        DS.Close;
                        Ds.Connection:=TempAdoConn;
                    except
                        MessageBox(Application.Handle,pchar('数据库文件:〖'+EdtMdb.Text+'〗连接失败!'),'提示',MB_OK+MB_ICONWARNING);
                    end;
                    if ListBox1.Items.Count<=0 then
                    begin
                    end
                    else
                    begin
                        for i:=0 to ListBox1.Items.Count-1 do
                        begin
                            Ds.close;
                            Ds.CommandText:=' select * from '+ListBox1.Items[i];
                            Ds.open;
                            if ds.Eof and ds.Bof then
                            begin
                            end
                            else
                            begin
                                pb.Max:=ds.RecordCount;
                                intCount:=0;
                                pb.Position:=0;
                                Ds.First;
                                LblCaption.Caption:='正在导入客户往来数据...';
                                while not Ds.Eof do
                                begin
                                    if Ds.Fields[0].IsNull then y:='' else y:=Ds.Fields[0].Value;
                                    if Ds.Fields[1].IsNull then r:='' else r:=Ds.Fields[1].Value;
                                    if Ds.Fields[2].IsNull then pdh:='' else pdh:=Ds.Fields[2].Value;
                                    if Ds.Fields[3].IsNull then kmbh:='' else kmbh:=Ds.Fields[3].Value;
                                    if Ds.Fields[4].IsNull then kmmc:='' else kmmc:=Ds.Fields[4].Value;
                                    if Ds.Fields[5].IsNull then khbh:='' else khbh:=Ds.Fields[5].Value;
                                    if Ds.Fields[6].IsNull then khmc:='' else khmc:=Ds.Fields[6].Value;
                                    if Ds.Fields[7].IsNull then zy:='' else zy:=Ds.Fields[7].Value;
                                    if Ds.Fields[8].IsNull then jfbb:=0 else jfbb:=Ds.Fields[8].Value;
                                    if Ds.Fields[9].IsNull then dfbb:=0 else dfbb:=Ds.Fields[9].Value;
                                    if Ds.Fields[10].IsNull then fx:='' else fx:=Ds.Fields[10].Value;
                                    if Ds.Fields[11].IsNull then yebb:=0 else yebb:=Ds.Fields[11].Value;
                                    TempSql:=' insert into tbnote_khwlmx('+
                                             ' f_y,f_r,f_pdh,f_kmbh,f_kmmc,f_khbh,f_khmc,f_zy,f_jfbb,f_dfbb,f_fx,f_yebb '+
                                             ' ) values( '''+
                                               y+''','''+
                                               r+''','''+
                                               pdh+''','''+
                                               kmbh+''','''+
                                               kmmc+''','''+
                                               khbh+''','''+
                                               khmc+''','''+
                                               zy+''','+
                                               FloatToStr(jfbb)+','+
                                               FloatToStr(dfbb)+','''+
                                               fx+''','+
                                               FloatToStr(yebb)+
                                             ' )';
                                    AdoConnTo.Execute(TempSql);
                                    inc(intCount);
                                    LblTotal.Caption:='已导入记录:'+inttostr(intCount)+' 条';
                                    edtbm.Caption:=Ds.Fields[2].AsString;
                                    self.Refresh;
                                    pb.Position:=intCount;
                                    Ds.Next;
                                end;//end while
                            end;// end else
                        end;//end for
                    end;//ListBox1.Items.Count>0
                finally
                    TempAdoConn.Close;
                    TempAdoConn.Free;
                end;//end try
            end;//Khwl
      

  8.   

    楼主,太强了吧,这个可真不值180啊,不然别人怀疑我倒分呢,
    现在A哥上任三把火,错烧我就惨了编号: 6 发送者 drillmaster 发送时间 2004-7-31 9:11:58 删除  回复  
    内容 谢谢你呀,这次结贴只给了180,以后望多多帮忙呀