当前位置:主页>销售管理软件> 列表

关于如何复制(导入)Access数据库的问题! 找物业管理软件下载

仓库管理软件版1楼: 大家有谁知道如何把A.mdb 中的Table1 的内容 插入B.mdb中的Table2中,Table1与Table2的结构一样,Copy时要求ID号(字符类型)一样的不Copy!请问如何写SQL语句??

2楼: http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
看去吧 如库存管理软件破解版

3楼: 那个好像不能判断条件哦!!我也想知道确切的方法!!!
SQL语句 select * into aaa from aaa in ''c::\temp\b.mdb''
用ADOConnection.Execute执行

4楼: 数据导出access to txt 用tab键分割,并且导出文件不含字段名:
用adoquery 连接的access库,我是这么写的 select * into [txt;tablimited].文件名.txt from 表名
这么写的结果是导出的文件用的是逗号分割,并且第一行含字段名,谁有办法,多谢??
你可以试一下先Access->excel, 然后改名.  
或者在TXT文件所在目录建立一个Schema.ini文件。该文件中指明分割符,如:
[authors.TXT]
ColNameHeader=True
CharacterSet=OEM
Format=Delimited(|)
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。


to all
问题已解决,哈哈,我是这么作的
修改schemi.ini
ColNameHeader=false;
Format=tabDelimited;

5楼: 我已前是用循环写入文本的,有没有其他更好的方法呢?
如:
id xm gz
------------------------------
1 张小三 1000
2 李四 20
3 王五 300
文本格式
1 张小三 1000
2 李四 20
3 王五 300

6楼: 贴一段资料,可解决楼上问题
使用 Schema.ini 檔來執行文字檔限制
如果您不能改變文字檔來執行文字檔限制,您可以改用 Schema.ini 檔。Schema.ini 檔是一種包含可覆寫 Microsoft Windows 登錄中預設文字驅動程式設定值項目的文字檔。若要使用 Schema.ini 檔,請執行下列步驟:

儲存 Schema.ini 檔於目前正在連結的文字檔所在的資料夾中。
將該檔案命名為 Schema.ini。
在此 Schema.ini 檔案的第一行,鍵入正在連結文字檔的檔名,並用括號括住。
範例:指定第一行資料行是資料

[Products.txt]
ColNameHeader=False

範例:指定分號字元 (;) 作為分隔符號

[Categories.txt]
Format=Delimited(;)

範例:指定具固定寬度的檔案和資料行寬度

[Shippers.txt]
ColNameHeader=False
Format=FixedLength
Col1=ShipperID Text Width 11
Col2=CompanyName Text Width 40
Col3=Phone Text Width 24

我使用了"|" 作为txt文件的分割符,但在txt文件取数据时,却是以","来读取数据的,请问如何设置。
答:如果你采用的是数据库方式读TXT文件,可以在TXT文件所在目录建立一个Schema.ini文件。该文件中指明分割符,如:
[yourfile.txt]
...
Format=Delimited(|)
...
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。

仓库管理软件版7楼: 整理一下:
解决了,我用的cb
/*
功能 : Access To DBF
ADOConnection2 => Access
*/
sql = "SELECT * INTO jyjh in \"c:\\temp\"[dbase 5.0;] FROM jyjh";
ADOConnection2->Execute(sql);

c:\temp\aaa.dbf to Access,
ADOConnection 指向Access
语句是 select * into bbb from aaa in ''c:\temp'' ''dbase 5.0;''

在Form上放一个ADOConnection,连结指向目标Access库
比如txt文件在c:\temp\aaaa.txt
就执行
ADOConnection.Connected := True;
ADOConnection.Execute(''Select * Into abcd From [Text;Database=c:\temp].aaaa.txt'');

将Oracle导入到文本文件
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt FROM Tab1 IN [ODBC]
[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]

将Oracle导入到Access
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\db1.mdb;Persist Security Info=False
SQL语句
SELECT * into tablename FROM Tab1 IN [ODBC]
[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]

DBase 5.0
DBASE IV
FoxPro 3.0
Paradox 7.X
Excel 8.0
text;HDR=YES;FMT=Delimited

SELECT * into aaa
FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="c:\temp\";User ID=Admin;Password=;Extended properties=Text'')...[bb#txt]



Excel联接ADO串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\a.xls;Extended
Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False
Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1
IMEX=1就是指混合型转换为文本
SQLServer从Excel取数
SELECT *
FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False'')...sheet1$

将SQLServer导入到文本文件
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
要改变分隔符,可以修改
Schema.ini文件。该文件中指明分割符,如:
[yourfile.txt]
...
Format=Delimited(|)
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。


txt导入SQLServer
select * from OpenRowset(''MSDASQL'', ''Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=c:\temp;'',''select * from aaaa.txt'')

sql server导出到access
ADOConnection 指向Access
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

sql server导出到excel
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

insert into gds_order select * from gds_order
in [ODBC][ODBC;dsn=jbcmis;User Name=informix;password=informix;]

用SQLServer连接DBF
在SQLServer中执行
SELECT * into bmk
FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0'')...bmk
这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中,

Access 到 Access
select * into aaa from aaa in ''c::\temp\b.mdb''
用ADOConnection.Execute执行

对foxpro 6.0采取odbc,建立一个数据源
insert into t_d(申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户行,客户帐号,开票单位,邮编,地址,电话,税号,开户行,帐号,编号,品名,规格,单位,单价,数量,金额,不含税单价,不含税金额,税额,底价,税率,税率1,红票金额,红票号,发票收件人,收件人地址,收件人电话,收件人邮编,备注,打印标志,制单,复核,审核,标志1,标志,管理模式,警示标志,结算单价,结算标准,扣率,冲减金额,回款金额,少回款,回款差额,欠款金额,欠款数量,来款单序号,主管部门,退票标志,退票日期,发货日期,申请号)
SELECT 申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户行,客户帐号,开票单位,邮编,地址,电话,税号,开户行,帐号,编号,品名,规格,单位,单价,数量,金额,不含税单价,不含税金额,税额,底价,税率,税率1,红票金额,红票号,发票收件人,收件人地址,收件人电话,收件人邮编,备注,打印标志,制单,复核,审核,标志1,标志,管理模式,警示标志,结算单价,结算标准,扣率,冲减金额,回款金额,少回款,回款差额,欠款金额,欠款数量,来款单序号,主管部门,退票标志,退票日期,发货日期,申请号

from
OPENROWSET(''MSDASQL'',
''dsn=ddd;SourceDB=e:\d_pro\mail\poprec;SourceType=DBF''
,''select * from E:\d_pro\mail\poprec\d.dbf'') as a --where 发票号 not in(select 发票号 from t_d)

8楼: 总节一下:
===============sql to sql===============
1 : 添加adoconnect_AT 控件, 连接到目的数据库ntserver-it-----即被倒入的数据库
2 :ADoconnect_AT.Execute(''select * INTO goodsdu FROM ''
+''OPENDATASOURCE(''''SQLOLEDB'''',''''Data Source=ntserver;User ID=sa;Password=99441dudu'''').table_dudu.dbo.goods'');
showmessage(''已经从ntserver 倒内容 ntserver-it 的 goodsdu ,即在ntserver-it 上 备份了 goods表 '');
//insert 用发跟上面一样,聪明的人该知道有什么用了把
3 :其他的如此类推
============access to access ==========
1 : 添加adoconnect_AT_acc 控件, 连接到目的数据库DU_acc.mdb-----即被倒入的数据库
2 :self.ADO4.Execute(''select * into aaa from goods in ''''C:\DU_acc2.mdb'''''');
showmessage(''ok access to access '');
=========想看其它的=====


1.打开数据哭sql2000 索引输入 OPENDATASOURCE
2.其它的你也来试一下,期待你的精彩代码
3.本人笨只有这么多了

9楼: 在SQLServer中执行
SELECT * into bmk
FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0'')...bmk

10楼: 下面是我的一个程序中的部份代码,是有关Access->Oracle的!
//全局变量
Const
sFilter3 = ''Access文件(*.mdb)|*.mdb'';
sExt3 = ''.mdb'';
...
sFSep1 = ''『'';
sFSep2 = ''』'';
sMsg23 = ''文件%s不存在,请输入(选择)一个已经存在的文件!'';
var
sUID, sPWD, sServer: string;
...
//Access->Oracle;
procedure TfrmExport.Access2Oracle;
var
i : integer;
sSql, sFN, sPath, sMsg, sCNTStr: string;
slTabs, slTmp : TStrings;
begin
with OpenDialog do
begin
Filter := sFilter3;
DefaultExt := sExt3;
if Execute then
begin


sFN := FileName;
sPath := ExtractFilePath(sFN);
sTab2 := ExtractFileName(sFN);
if not FileExists(sFN) then
begin
sMsg := Format(sMsg23, [sFSep1 + sFN + sFSep2]);
Application.MessageBox(PChar(sMsg), PChar(sWarning),
MB_ICONINFORMATION + MB_OK);
palNote.Visible := False; //提示用的:TPanel类
btnOk.Enabled := True;
Exit;
end;
end
else
begin
palNote.Visible := False;
btnOk.Enabled := True;
Exit;
end;
end;
sCNTStr := ADOConnection.ConnectionString;
slTmp := TStringList.Create;
CheckSite(sCNTStr, '';'', slTmp);
{这里不用slTmp.DelimitedText是因为联接字符串中有空格,而空格会被认为是间隔符}
//用户名
sUID := GetStr(slTmp, ''USER ID='');
//密码
sPWD := GetStr(slTmp, ''PASSWORD='');
//服务名
sServer := GetStr(slTmp, ''DATA SOURCE='');
slTmp.Free;
slTabs := TStringList.Create;
sCNTStr := ''Provider=Microsoft.Jet.OLEDB.4.0;Data Source='' + sFN
+ '';Persist Security Info=True'';
with AConnection do
begin
Close;
ConnectionString := sCNTStr;
Connected := True;
GetTableNames(slTabs, False);
end;
//=====下面这段代码是选择数据库中的表=====
bAll := True;
frmChooseField := TfrmChooseField.Create(Application);
with frmChooseField do
begin
ListBoxAllField.Items.Assign(slTabs);
ShowModal;
Release;
end;
//=====上面这段代码是选择数据库中的表=====
if not bExport then //选择表时按了[取消]按钮/不导
begin
palNote.Visible := False;
btnOk.Enabled := True;
Exit;
end;
//整理选择的表名,存到slTabs中
if Trim(sFields) <> '''' then
CheckSite(sFields, '','', slTabs)
else
begin
palNote.Visible := False;
btnOk.Enabled := True;

Exit;
end;
//开始循环导数据
for i := 0 to slTabs.Count - 1 do
begin
Application.ProcessMessages;
sTab2 := slTabs[i];
sTab1 := UpperCase(sTab2);
StatusBar.Panels[0].Text := sTab2;
sSql := ''select * into '' + sTab1
+ '' in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID='' + sUID
+ '';PWD='' + sPWD + '';Server='' + sServer + '';] from '' + sTab2;
AConnection.Execute(sSql);
end;
slTabs.Free;
end;

function TfrmExport.CheckSite(const Str, Ch: string; var Mystring: TStrings)
: boolean;
{字符串Str以Ch分隔成几段小字符串,该函数是将这些小字符串提取出来并保存在MyString中
Str:字符串
Ch:分隔符
Mystring:保存分隔后的字符串
返回:分隔后的字符串数大于1则返回True,否则为False}
var
sit, n : integer;
S : string;
begin
Result := True;
MyString.Clear;
S := Str;
n := Length(Ch);
while True do
begin
if Pos(Ch, S) = 0 then
begin
MyString.Add(S);
Break;
end;
sit := Pos(Ch, S);
MyString.Add(Copy(S, 1, sit - 1));
S := Trim(Copy(S, sit + n, Length(S)));
end;
if MyString.Count < 2 then Result := False;
end;

function TfrmExport.GetStr(slTmp: TStrings; sStr: string): string;
var
i : integer;
sTmp : string;
begin
Result := '''';
for i := 0 to slTmp.Count - 1 do
begin
sTmp := UpperCase(slTmp[i]);
if Pos(UpperCase(sStr), sTmp) > 0 then
begin
sTmp := StringReplace(sTmp, UpperCase(sStr), '''', [rfReplaceAll]);
Result := sTmp;
Break;
end;
end;
end;

11楼: ADOConnection2.Execute(''SELECT * into abc FROM OpenDataSource(''''Microsoft.Jet.OLEDB.4.0'''',''''Data Source="C:\1.xls";Extended Properties=Excel 8.0'''')...[Sheet1$]'');

12楼: 我已经解决了,用SQL监视器查出问题来了,呵呵,应该这样写:


with query do
begin
Close;
SQL.Clear;
SQL.Add(''SELECT * into tab_Tmp FROM OpenDataSource(''+''''''''
+''Microsoft.Jet.OLEDB.4.0''+'''''',''+''''''''
+''Data Source=''''''''C:'''''''';User ID=Admin;Password=;Extended properties=dBase IV''+'''''')''+''...asd'');
try
ExecSQL;
except
...
end;
end; 如物业管理软件下载

13楼: [blue]Access To Access
如果源Access有密码怎么办啊? [/blue]
看我的
adoconnection2.connectionstring:=''Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=g:\server.xc;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=123456;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'';


adoconnection2.connected:=true;
ADOConnection2.Execute(
''select * into admina from [G:\server_data.mdb;Pwd=123456].admin'');
目标数据库不能存在相同的表



来自:chenshaizi, 时间:2003-10-29 22:04:00, ID:2260749 | 编辑
还有更好的办法
ADOConnection2.connectionstring:=''同上''
ADOConnection2.Execute(
''insert into admin select * from [G:\server_data.mdb;Pwd=123456].admin'');
同一个表操作
这只是简单的复制操作,主键它不认,

仓库管理软件版14楼: [FRM]
object Form1: TForm1
Left = 194
Top = 126
Width = 544
Height = 375
Caption = ''异构数据库数据互导''
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = ''宋体''
Font.Style = []
OldCreateOrder = False
OnCloseQuery = FormCloseQuery
PixelsPerInch = 96
TextHeight = 12
object labTime: TLabel
Left = 48
Top = 312
Width = 6
Height = 12
end
object GroupBox1: TGroupBox


Left = 8
Top = 8
Width = 220
Height = 153
Caption = '' Access ''
TabOrder = 0
object Button1: TButton
Left = 15
Top = 23
Width = 90
Height = 25
Caption = ''Access->TXT''
TabOrder = 0
OnClick = Button1Click
end
object Button3: TButton
Left = 15
Top = 55
Width = 90
Height = 25
Caption = ''Access->DBF''
TabOrder = 1
OnClick = Button3Click
end
object Button4: TButton
Left = 15
Top = 120
Width = 90
Height = 25
Caption = ''Access->Access''
TabOrder = 3
OnClick = Button4Click
end
object Button2: TButton
Left = 112
Top = 23
Width = 90
Height = 25
Caption = ''TXT->Access''
TabOrder = 4
OnClick = Button2Click
end
object Button5: TButton
Left = 112


Top = 55
Width = 90
Height = 25
Caption = ''DBF->Access''
TabOrder = 5
OnClick = Button5Click
end
object Button9: TButton
Left = 15
Top = 88
Width = 90
Height = 25
Caption = ''Access->Excel''
TabOrder = 2
OnClick = Button9Click
end
object Button10: TButton
Left = 112
Top = 88
Width = 90
Height = 25
Caption = ''Excel->Access''
TabOrder = 6
OnClick = Button10Click
end
end
object GroupBox2: TGroupBox
Left = 256
Top = 8
Width = 217
Height = 153
Caption = '' Oracle ''
TabOrder = 1
object Button6: TButton
Left = 16
Top = 88
Width = 90
Height = 25
Caption = ''Oracle->Access''
TabOrder = 2
OnClick = Button6Click
end
object Button7: TButton
Left = 16

Top = 23
Width = 90
Height = 25
Caption = ''Oracle->TXT''
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = ''宋体''
Font.Style = []
ParentFont = False
TabOrder = 0
OnClick = Button7Click
end
object Button8: TButton
Left = 16
Top = 120
Width = 90
Height = 25
Caption = ''Oracle->Excel''
TabOrder = 3
OnClick = Button8Click
end
object Button11: TButton
Left = 16
Top = 55
Width = 90
Height = 25
Caption = ''Oracle->DBF''
TabOrder = 1
OnClick = Button11Click
end
object Button12: TButton
Left = 112
Top = 23
Width = 90
Height = 25
Caption = ''TXT->Oracle''
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = ''宋体''
Font.Style = []
ParentFont = False
TabOrder = 4
OnClick = Button12Click
end
object Button13: TButton
Left = 112
Top = 55
Width = 90
Height = 25
Caption = ''DBF->Oracle''
TabOrder = 5
OnClick = Button13Click
end
object Button14: TButton
Left = 112
Top = 87
Width = 90
Height = 25
Caption = ''Access->Oracle''
TabOrder = 6
OnClick = Button14Click
end
object Button15: TButton
Left = 112
Top = 120
Width = 90
Height = 25
Caption = ''Excel->Oracle''
TabOrder = 7
OnClick = Button15Click
end
end
object StatusBar: TStatusBar
Left = 0
Top = 329
Width = 536
Height = 19
Panels = <
item
Text = ''耗时:''
Width = 32
end
item

Width = 100
end
item
Width = 50
end>
SimplePanel = False
end
object Button16: TButton
Left = 24
Top = 176
Width = 90
Height = 25
Caption = ''TXT->DBF''
TabOrder = 3
OnClick = Button16Click
end
object AccessConnection: TADOConnection
ConnectionString =
''Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=E:\Delp'' +
''hilx\ADOSQL\PH\demo.mdb;Persist Security Info=True''
LoginPrompt = False
Mode = cmShareDenyNone
Provider = ''Microsoft.Jet.OLEDB.4.0''
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 95
end
object ExcelConnection: TADOConnection
ConnectionString =
''Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\aaa.xls;Extended'' +
'' Properties=Excel 8.0;Persist Security Info=False''
LoginPrompt = False
Mode = cmShareDenyNone
Provider = ''Microsoft.Jet.OLEDB.4.0''
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 128
end
object TxtConnection: TADOConnection
ConnectionString =
''Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:\temp'' +
'';Extended Properties="text;HDR=YES;FMT=Delimited";Persist Securi'' +
''ty Info=True''
LoginPrompt = False
Mode = cmShareDenyNone
Provider = ''Microsoft.Jet.OLEDB.4.0''
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 31
end
object DBFConnection: TADOConnection
ConnectionString =
''Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\;Extended Proper'' +
''ties=DBase 5.0;Persist Security Info=False''
LoginPrompt = False
Provider = ''Microsoft.Jet.OLEDB.4.0''
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 63
end
object OracleConnection: TADOConnection
ConnectionString =
''Provider=MSDASQL.1;Password=bklskf;Persist Security Info=True;Us'' +
''er ID=bklskf;Data Source=bkls''
Provider = ''MSDASQL.1''
Left = 228
Top = 161
end
end

[Unit]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, ComCtrls;

type
TForm1 = class(TForm)
AccessConnection: TADOConnection;
GroupBox1: TGroupBox;
Button1: TButton;
Button3: TButton;
Button4: TButton;
Button2: TButton;
Button5: TButton;
GroupBox2: TGroupBox;
Button6: TButton;
Button7: TButton;
labTime: TLabel;
StatusBar: TStatusBar;
ExcelConnection: TADOConnection;
Button8: TButton;
TxtConnection: TADOConnection;
Button9: TButton;
Button10: TButton;
Button11: TButton;
DBFConnection: TADOConnection;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
OracleConnection: TADOConnection;
Button16: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure AccessConnectionExecuteComplete(Connection: TADOConnection;
RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
procedure AccessConnectionWillExecute(Connection: TADOConnection;
var CommandText: WideString; var CursorType: TCursorType;
var LockType: TADOLockType; var CommandType: TCommandType;
var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
const Command: _Command; const Recordset: _Recordset);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1 : TForm1;
sSql : string;
iT1, iT2 : integer;

implementation

{$R *.dfm}

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin
TxtConnection.Close;
DBFConnection.Close;
AccessConnection.Close;
ExcelConnection.Close;
end;

procedure TForm1.AccessConnectionExecuteComplete(Connection: TADOConnection;
RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
begin
//记时1
iT2 := GetTickCount;
StatusBar.Panels[1].Text := FormatFloat(''#,##'', iT2 - iT1) + ''毫秒'';
StatusBar.Panels[2].Text := ''共导记录:'' + IntToStr(RecordsAffected) + ''条'';
end;

procedure TForm1.AccessConnectionWillExecute(Connection: TADOConnection;
var CommandText: WideString; var CursorType: TCursorType;
var LockType: TADOLockType; var CommandType: TCommandType;
var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
const Command: _Command; const Recordset: _Recordset);
begin
iT1 := GetTickCount;
end;

//=================================================================

//Access
//Access->TXT
procedure TForm1.Button1Click(Sender: TObject);
begin
sSql := ''select * into [Text;Database=f:\].aaa.txt from demo'';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->DBF
procedure TForm1.Button3Click(Sender: TObject);
begin
sSql := ''select * into aaa in ''''f:\'''' ''''dbase 5.0;'''' from demo'';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->Excel
//注意:前一个aaa为Excel文件中的aaa页,后一个aaa为Access文件demo.mdb中的一个表名
procedure TForm1.Button9Click(Sender: TObject);
begin
sSql :=
''select * into aaa from aaa in ''''E:\Delphilx\ADOSQL\PH\demo.mdb'''''';
with ExcelConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->Access
procedure TForm1.Button4Click(Sender: TObject);
begin
sSql := ''select * into aaa from demo in ''''E:\Delphilx\ADOSQL\PH\demo.mdb'''''';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//TXT->Access
procedure TForm1.Button2Click(Sender: TObject);
begin
sSql := ''select * into uform from [Text;Database=f:\].form.txt'';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//DBF->Access
procedure TForm1.Button5Click(Sender: TObject);
begin
sSql := ''select * into aaa from aaa in ''''f:\'''' ''''dbase 5.0;'''''';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Excel->Access
//[aaa$]->Excel文件aaa.xls中的aaa页
procedure TForm1.Button10Click(Sender: TObject);
begin
sSql :=
''select * into bbb from [excel 8.0;database=f:\aaa.xls].[aaa$]'';
with AccessConnection do

begin
Connected := True;
Execute(sSql);
end;
end;

//=================================================================
//Oracle
//Oracle->Access
procedure TForm1.Button6Click(Sender: TObject);
begin
sSql :=
''select * into ouform from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]'';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Oracle->TXT
procedure TForm1.Button7Click(Sender: TObject);
begin
sSql := ''select VGH,VXM,VMM into lsygb.txt from (select * from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;SERVER=BKLS;])'';
// sSql :=
// ''select * into form.txt from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]'';
with TxtConnection do
begin
Close;
Connected := True;
Execute(sSql);
end;

end;

//Oracle->Excel
procedure TForm1.Button8Click(Sender: TObject);
begin
sSql :=
''select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]'';
with ExcelConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Oracle->DBF
procedure TForm1.Button11Click(Sender: TObject);
begin
sSql :=
''select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]'';
with DBFConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//TXT->Oracle
//Oracle数据库注意要将表名大写!不然创建出来的表可以看到表名但无法打开
procedure TForm1.Button12Click(Sender: TObject);
begin
sSql := ''select * into PH_TXT in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from ph_txt.txt'';
with TxtConnection do
begin
Close;
Connected := True;
Execute(sSql);
end;
end;

//DBF->Oracle
procedure TForm1.Button13Click(Sender: TObject);
begin
sSql :=
''select * into PH_DBF in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa'';
with DBFConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->Oracle
procedure TForm1.Button14Click(Sender: TObject);
begin
sSql :=
''select * into PH_ACCESS in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa'';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Excel->Oracle
procedure TForm1.Button15Click(Sender: TObject);
begin
// ''select * into MLB in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;Server=BKLS;] from MLB''
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\aaa.xls;Extended Properties=Excel 8.0;Persist Security Info=False
sSql :=
''select * into PH_EXCEL in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa'';
with ExcelConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
sSql := ''select * into qxb in ''''f:\'''' ''''dbase 5.0;'''' from lsqxb.txt'';
with TXTConnection do
begin
// Close;
// ConnectionString := ''Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:\temp;Extended Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=True'';
Connected := True;
Execute(sSql);
end;
end;

end.

15楼: 导入并新建表
SELECT * into [创建的表名] FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''DataSource="F:\bbb.xls";Extended Properties=Excel 8.0'')...[sheet1$]-->这是工作表的名字
导入已存在的表中
insert into [表名]
SELECT * into [创建的表名] FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''DataSource="F:\bbb.xls";Extended Properties=Excel 8.0'')...[sheet1$]-->这是工作表的名字

16楼: [gold]应该 可以了!![/gold]

17楼: 最笨的方法就是来个循环比较,有的不加。只是这样浪费的时间可能要多。对小型数据库可以,便对大型数据库就背牛了。另一思路就是建一临时表,只读入两表的ID字段,通过生成临时表的比较,生成不同的记录号,再根据记录号直接参与Copy。

18楼: 有更好的办法吗?

19楼: ''select * into Table2 from Table1 in ''''你的数据库A.mdb的文件路径''''''


把这个写到b.mdb连接的adoquery中的SQL中去,连接字符串设置成连接b.mdb,我记不住QQ号的,在小灵通里,没带
要不你把数据库压缩后发到cn2002boy@163.com上,我给你写这段代码

20楼: 已经好了例子已经发出去了,注意邮件