请问如何用程序创建access 的mdb数据库和表
我将一个a.mdb的a 表筛选后生成b.mdb 的b表,我用
ADOQuery-> SQL(select * into b from a )为什么不成功.
select * into [c:\\b.mdb].b from [c:\\a.mdb].a 也不成功,为何?能提供正确代码马上给分.谢谢.
[解决办法]
创建生成表查询时,请指定:
新数据库表(目标表)的名称。
要从中复制行的一个或多个表(源表)。可以从单个表或联接表中进行复制。
要复制其内容的源表中的列。
排序次序(如果想以特定的次序复制行)。
定义要复制行的搜索条件。
“分组依据”选项(如果仅想复制汇总信息)。
例如,下列查询将创建称为 uk_customers 的新表并将信息从 customers 表复制到其中:
SELECT *
INTO uk_customers
FROM customers
WHERE country = 'UK '
为成功使用生成表查询,必须拥有在目标数据库中创建表的权限。
[解决办法]
http://msdn2.microsoft.com/en-us/library/bb208934.aspx
[解决办法]
首先要有对应的mdb和对应的表才可以~~~~~~~~
insert into [d:\tmp1.MDB;Uid=User;Pwd=Pass].a select * from [d:\tmp2.MDB;Uid=User;Pwd=Pass].b
[解决办法]
如果可以的话
我建议你先建一个空表 b
结构和a的一样
如果不用了就可以清空表b
这样看上去就像新建的
再用 select * into b from a
应该就不会报错了
[解决办法]
还没有搞定么?
苯方法:把相同的表结构当作资源来用;
另存时,把资源释放;然后分别使用两个连接,打开不同的数据库;
使用SQL语句,一条条把内容拷贝到新表;
大概代码如下;
Query-当前数据库连接表
mQuery-需要新保存的连接表
dbname-数据库表名称
fCount=DM-> Query-> Fields-> Count;
dbsql= "INSERT INTO "+dbname+ "( ";
for (int f=0;f <fCount-1;f++)
dbsql=dbsql+DM-> Query-> Fields-> Fields[f]-> FieldName+ ", ";
dbsql=dbsql+DM-> Query-> Fields-> Fields[fCount-1]-> FieldName+ ") VALUES( ";
DM-> Query-> FindFirst();
for (int r=0;r <rCount;r++)
{
sql=dbsql;
for (int f=0;f <fCount-1;f++)
{
dsc= DM-> Query-> Fields-> Fields[f]-> AsString;
if (dsc!= " ")
sql=sql+ " ' "+dsc+ " ', ";
else
sql=sql+ " '0 ', ";
}
dsc= DM-> Query-> Fields-> Fields[fCount-1]-> AsString;
if (dsc!= " ")
sql=sql+ " ' "+dsc+ " ') ";
else
sql=sql+ " '0 ') ";
DoSql(mQuery,sql); //运行SQL语句,插入记录到新库
DM-> Query-> FindNext();
}