怎样在foxpro下打开access的数据库中的某个表,并把它导出为*.dbf??

ys497 2003-06-27 10:26:01
我用以下代码,可以实现在foxpro下打开access,但下一步怎样打开一个D:\MY.MDB
这个库,及其中一个表a,请高手赐教!!!
oaccessObj = CREATEOBJECT("Access.Application")
oaccessObj.visible=.t.
******************************
注:我用以下代码可以打开一个d:\my.xls的excel文件,并将其修改后保存在d:\my.xls,其代码如下:以供高手参考!!!

oExcel = CREATEOBJECT("Excel.Application")
oExcel.visible=.t.
oBooks = oExcel.Workbooks.Open("d:\my.XLS")
oBooks.SaveAs("d:\31.XLS")
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnpyz 2003-06-28
  • 打赏
  • 举报
回复
使用 8.0 的 CursorAdapter 即可解决。
ys497 2003-06-28
  • 打赏
  • 举报
回复
up
我试了一下连不上,也打不开access,还 请高手三思,谢谢!!!
qufusongyu 2003-06-27
  • 打赏
  • 举报
回复
l_path="d:\"
Open Database tsgl
SQLSETPROP(0,"displogin",3)
Create Connection ts Connstring "DSN=MS Access Database;DBQ="+l_path+"my.mdb;DefaultDir="+l_path+";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=admin;UID=admin;"
*!* SQLDISCONNECT(0)
nhandle=SQLConnect("ts")
If nhandle<0
Messagebox("不能连接数据库!",16,"错误提示")
ON SHUTDOWN quit
quit
Else
Wait Window "已经连上数据库!" nowait
endif
**************************************
用以上代码可连接数据库
也可以用odbc做一个连接,然后做视图,
open mydatabase
use XX &&你的连接my.mdb中的视图
brow
企业人力资源综合管理系统—自述文档 简介及版权说明 =============== 该软件是为小型企事业单位进行人事管理而编制的 软件。该软件为免费软件,可以随意拷贝及使用。 运行环境 =============== 文WIN95/98/NT/2000/XP 软件特点 =============== 绿色数据库软件,不需外加DLL,不改系统。 软件大小 =============== 全编译 1.7M 主要文件 =============== 企业人事管理系统V24.exe 为主程序; datadata.dat为人事管理默认数据库; datadata0.dat为人事管理示例数据库; datadata1.dat……datadata9.dat为人事管理数据库1……数据库9(用户自己扩展); dataPY.lst为拼音库; data ote.dat为文件资料数据库。 主要功能模块 =============== 1、人事档案 1.1-人员基本资料 1.2-家庭成员 1.3-基本工资 1.4-工作经历 1.5-奖惩纪录 1.6-员工年评 1.7-职称评定 1.8-培训纪录 1.9-员工考勤 2、查询统计 2.1-分类统计查询(带统计图及统计图导出) 2.1-年龄分布查询(带统计图及统计图导出) 2.3-SQL脚本查询 2.4-常规查询 2.5-常用查询(SQL脚本录制) 2.6-批量修改 3、打印 3.1-人事档案(16K) 3.2-人事档案信息卡(32K) 3.3-人员名单花名册(16K) 3.4-工作证套打(2002版工作证) 4、导出 4.1-Excel2000(电子格) *.xls 4.2-Access2000 *.mdb 4.3-文本文件 *.txt 4.4-Word2000 *.doc 4.5-Html网页 *.htm 4.6-Dbase .. Foxpro数据库 *.dbf *.db 注意事项 =============== 如果你在使用发现问题,或有宝贵建议的话, 请务必与我们联系。 我们的EMAIL地址是Lanpx@vip.sian.com 软件发布主页 软件发布主页 (1) http://blueNumber.51.net(我的个人主叶) http://blueNumber.51.net/file/setup.exe (2) http://www.csdn.net/cnshare/soft/14/14610.shtm (国软件) ftp://211.100.8.153/download/58/14054_setup.exe (3) http://www.downme.com/soft/soft25874.html (国软件站) http://www.downme.com/download/DownMe.com_25874qyrlzyglxt_setup.exe (4) http://www.cnyou.com (华游软件网) http://www.cnyou.com/down/list.asp?id=1724 2002(C) 广铁客运公司怀化客运事业部版权所有。保留所有权利。
******* 导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' /*********** 导入Excel SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /*动态文件名 declare @fn varchar(20),@s varchar(1000) set @fn = 'c:\test.xls' set @s ='''Microsoft.Jet.OLEDB.4.0'', ''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0''' set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$' exec(@s) */ SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /********************** EXCEL导到远程SQL insert OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.名 (列名1,列名2) SELECT 列名1,列名2 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /** 导入文本文件 EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword' /** 导出文本文件 EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword' 或 EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword' 导出到TXT文本,用逗号分开 exec master..xp_cmdshell 'bcp "库名..名" out "d:\tt.txt" -c -t ,-U sa -P password' BULK INSERT 库名..名 FROM 'c:\test.txt' WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = '\n' ) --/* dBase IV文件 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]') --*/ --/* dBase III文件 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]') --*/ --/* FoxPro 数据库 select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', 'select * from [aa.DBF]') --*/ /**************导入DBF文件****************/ select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=e:\VFP98\data; SourceType=DBF', 'select * from customer where country != "USA" order by country') go /***************** 导出DBF ***************/ 如果要导出数据到已经生成结构(即现存的)FOXPRO,可以直接用下面的SQL语句 insert into openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', 'select * from [aa.DBF]') select * from 说明: SourceDB=c:\ 指定foxpro所在的文件夹 aa.DBF 指定foxpro的文件名. /*************导出Access********************/ insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'x:\A.mdb';'admin';'',A) select * from 数据库名..B /*************导入Access********************/ insert into B selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 'x:\A.mdb';'admin';'',A) 文件名为参数 declare @fname varchar(20) set @fname = 'd:\test.mdb' exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'', '''+@fname+''';''admin'';'''', topics) as a ') SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品 ********************* 导入 xml 文件 DECLARE @idoc int DECLARE @doc varchar(1000) --sample XML document SET @doc =' Customer was very satisfied Important Happy Customer. ' -- Create an internal representation of the XML document. EXEC sp_xml_preparedocument @idoc OUTPUT, @doc -- Execute a SELECT statement using OPENXML rowset provider. SELECT * FROM OPENXML (@idoc, '/root/Customer/Order', 1) WITH (oid char(5), amount float, comment ntext 'text()') EXEC sp_xml_removedocument @idoc ??????? /**********************Excel导到Txt****************************************/ 想用 select * into opendatasource(...) from opendatasource(...) 实现将一个Excel文件内容导入到一个文本文件 假设Excel有两列,第一列为姓名,第二列为很行帐号(16位) 且银行帐号导出到文本文件后分两部分,前8位和后8位分开。 邹健: 如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2 然后就可以用下面的语句进行插入 注意文件名和目录根据你的实际情况进行修改. insert into opendatasource('MICROSOFT.JET.OLEDB.4.0' ,'Text;HDR=Yes;DATABASE=C:\' )...[aa#txt] --,aa#txt) --*/ select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) from opendatasource('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls' --,Sheet1$) )...[Sheet1$] 如果你想直接插入并生成文本文件,就要用bcp declare @sql varchar(8000),@tbname varchar(50) --首先将excel内容导入到一个全局临时 select @tbname='[##temp'+cast(newid() as varchar(40))+']' ,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) into '+@tbname+' from opendatasource(''MICROSOFT.JET.OLEDB.4.0'' ,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'' )...[Sheet1$]' exec(@sql) --然后用bcp从全局临时导出到文本文件 set @sql='bcp "'+@tbname+'" out "c:\aa.txt" /S"(local)" /P"" /c' exec master..xp_cmdshell @sql --删除临时 exec('drop table '+@tbname) /********************导整个数据库*********************************************/ 用bcp实现的存储过程 /* 实现数据导入/导出的存储过程 根据不同的参数,可以实现导入/导出整个数据库/单个 调用示例: --导出调用示例 ----导出单个 exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1 ----导出整个数据库 exec file2table 'zj','','','xzkh_sa','C:\docman',1 --导入调用示例 ----导入单个 exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0 ----导入整个数据库 exec file2table 'zj','','','xzkh_sa','C:\docman',0 */ if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1) drop procedure File2Table go create procedure File2Table @servername varchar(200) --服务器名 ,@username varchar(200) --用户名,如果用NT验证方式,则为空'' ,@password varchar(200) --密码 ,@tbname varchar(500) --数据库.dbo.名,如果不指定:.dbo.名,则导出数据库的所有用户 ,@filename varchar(1000) --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用名.txt ,@isout bit --1为导出,0为导入 as declare @sql varchar(8000) if @tbname like '%.%.%' --如果指定了名,则直接导出单个 begin set @sql='bcp '+@tbname +case when @isout=1 then ' out ' else ' in ' end +' "'+@filename+'" /w' +' /S '+@servername +case when isnull(@username,'')='' then '' else ' /U '+@username end +' /P '+isnull(@password,'') exec master..xp_cmdshell @sql end else begin --导出整个数据库,定义游标,取出所有的用户 declare @m_tbname varchar(250) if right(@filename,1)'\' set @filename=@filename+'\' set @m_tbname='declare #tb cursor for select name from '+@tbname+'..sysobjects where xtype=''U''' exec(@m_tbname) open #tb fetch next from #tb into @m_tbname while @@fetch_status=0 begin set @sql='bcp '+@tbname+'..'+@m_tbname +case when @isout=1 then ' out ' else ' in ' end +' "'+@filename+@m_tbname+'.txt " /w' +' /S '+@servername +case when isnull(@username,'')='' then '' else ' /U '+@username end +' /P '+isnull(@password,'') exec master..xp_cmdshell @sql fetch next from #tb into @m_tbname end close #tb deallocate #tb end go /************* Oracle **************/ EXEC sp_addlinkedserver 'OracleSvr', 'Oracle 7.3', 'MSDAORA', 'ORCLDB' GO delete from openquery(mailser,'select * from yulin') select * from openquery(mailser,'select * from yulin') update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888 insert into openquery(mailser,'select disorder,catago from yulin')values(333,777) 补充: 对于用bcp导出,是没有字段名的. 用openrowset导出,需要事先建好. 用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入
数据库开发助手(DBDevTools V5.0)是一款数据库开发管理工具! 版本5.0兼备ACCESS数据库开发、DBF数据库开发和SQL SERVER开发、管理支持功能,是目前大型数据库软件开发工具的有效助手。这款软件工具将为您今后的工作提供许多方便,不论是开发、还是调试、设计,有了她的帮助,您将使工作更加有效率,有成就!界面简洁,功能强大,下面介绍本工具的使用方法: ACCESS数据库开发提供:一、查看数目及结构 二、查询记录内容 三、执行SQL语句,相当于SQL语句调试测试(SQL语句自助) 四、增加、删除、修改数据记录 五、与EXCEL报记录的导入导出 六、同SQL SERVER数据库的导入导出 七、与TXT文本文件的导入导出 八、压缩数据库,修改密码 九、查看ACCESS数据库原先加密密码,支持特殊密码字符 十、隐藏查看、设置与的重命名 十一、查询结果报打印输出 十二、ACCESS程序设计资料。 MS SQLSERVER数据库开发提供:一、查看指定数据库对象 二、加密的存储过程、函数、触发器及视图都可以解密 三、自助提供的查询、增、删、改的SQL语句 四、针对现有记录生成初始数据脚本 五、针对生成管理此的存储过程。 六、SQL结构及数据统计分析。 MS SQLSERVER数据库管理提供:一、SQL备份恢复(包括本地备份和远程备份)。 二、SQL与第三方数据格式(EXCEL,ACCESSDBF,TXT,远程MS SQLSERVER)导入导出 三、SQL语句查询、查询结果报打印、执行语句提交 四、SQL编程资料参考。 DBF开发提供:一、DBF结构查看(支持FOXPRO) 二、DBF数据查看 三、SQL语句提交执行。 SQL多自动生成:只需拖动鼠标,设置查询条件,就能对复杂的多查询自动产生出SQL结果。 此外,有完善的在线帮助示例,存储过程区增加列号显示器,一目了然,易用实用,是一款开发必备的工具软件,强烈推荐。安装包包含了必要的支持,安装完不需另行安装其它插件软件即可使用。支持WIN2000,WIN98,WINXP,WIN2003;共享版软件免费下载使用。老用户可以继续使用原来的注册码,直接安装5.0版本升级即可。 (本软件发布属于软件更新, 原收录位置是:http://down.csdn.net/kfgj/other/14512.html)

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧