VFP与Excel交互编程.doc

  1. 1、本文档共197页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VFP与Excel交互编程

1.VFP与Excel交互编程 VFP(Visual Foxpro)是一种关系型数据库管理系统,由于其强大的数据处理能力及良好的兼容性,使其成为数据库应用程序开发人员强有力的工具而广为使用; 而Excel则是一个优秀的电子表格处理软件,在兼容性、操作界面、公式运算、图表等方面有着独到的优势,成为广大办公应用人员必备的首选软件。上述两种软件在各自的应用领域均得到了广泛的应用,同时上述两种软件还具有良好的交互编程能力,为两者相辅相成、取长补短奠定了良好的基础。 本文将结合实例介绍的方法,在VFP中除了使用OLE技术外,还可使用DDE技术与外部服务器进行数据交换,本文主要讲解VFP中使用OLE技术与Excel交换数据,Excel中借助内置的VBA使用VFP提供的Application对象来调用VFP中的一些功能。其功能可简述如下:VFP数据表“学生成绩.DBF”中含“学号、姓名、语文、数学”等字段,示例程序将从Excel工作簿“VFP交互.XLS”的工作表“查询”中用“条件”区域(一般为一个矩形区中的数据,该区域名称指定为“条件”,数据形如“语文60”、“数学90”等)中的数据作为查询的条件,用“连接条件”区域(一般为一个单元格,其值为“or”或者“and”)来获取组合“条件”的逻辑连接,并将该连接信息的内容以工作表的形式显示出来,然后调用VFP中针对给定表的SQL查询来找出给定条件的记录并显示到Excel中。下列程序均在VFP 6.0与Excel 2000中调试通过。 ⑴Excel驱动VFP Excel内置的VBA语言(Visual Basic For Application)为Excel功能的扩展提供了便利的手段,用户可使用该语言直接驱动VFP完成数据检索等功能。程序首先生成一个VFP对象,然后用VFP的DoCmd方法执行VFP搜索命令串,其搜索结果再借助于VFP的DataToClip方法拷贝至剪切板,最后VBA将其粘贴至工作表的正确位置,为了每次运行时能将结果插入到工作表中,依次对操作的工作表以“搜索结果”、“搜索结果1”等进行编号。 Sub exceluseFox () Dim oFox As Object ’声明oFox为一个对象 Dim SCommand As String ’SQL对应的命令串变量 Dim cell As Variant Dim choice As String Dim join As String Dim first As Boolean Dim found As Boolean ’搜索结果标志,若表单中有搜索结果,则为真 Set oFox = CreateObject(“VisualFoxPro .Application”) ’启动VFP,生成VFP对象 Sheets(“查询”).Select ’选择对应的工作表“查询” join = Range(“连接条件”) ’在单一表格中的一个元素,其值为and或者or choice = “” ’置连接串初值为空 first = True ’一般情况下连接串后需要加上逻辑连接符and 或 or,首次例外 For Each cell In Range(“条件”) ’产生连接条件,形成where语句的连接逻辑串 If first Then choice = choice + cell ’形成第一次出现的where子句后的字符串 first = False ’修改首次进入标志,以后的连接均需要加上逻辑连接符 Else choice = choice + “ ” + join + “ ” + cell ’join的值是and或者是or End If Next cell Sheets.Add ’ 产生新的工作表单 ’找一个不重复的工作表名 found = False ’工作表名中前四个汉字有没有“搜索结果”的标志变量 n = 1 For Each cell In Worksheets If InStr(1, cell.Name, “搜索结果”) 0 Then found = True ’找到对应的工作表 If n Val(Mid(cell.Name + Space(2), 5, 2)) Then n = Val(Mid(cell.Name + Space(2), 5, 2)) ’形成形如搜索结果1、搜索结果2等的表单名 End If End If Next cell If Not found Then ActiveSheet.Name = “搜索结果” Else n = n + 1 ’值增1 ActiveSheet.Name = “搜索结果” n ’形成工作表名

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档