在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

VFP與Excel交互編程

VFP與Excel交互編程

更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

◆ 何詠明 (djkhym@netease.com)

VFP(Visual Foxpro)是一種關系型數據庫管理系統,由于其強大的數據處理能力及良好的兼容性,使其成為數據庫應用程序開發人員強有力的工具而廣為使用; 而Excel則是一個優秀的電子表格處理軟件,在兼容性、操作界面、公式運算、圖表等方面有著獨到的優勢,成為廣大辦公應用人員必備的首選軟件。上述兩種軟件在各自的應用領域均得到了廣泛的應用,同時上述兩種軟件還具有良好的交互編程能力,為兩者相輔相成、取長補短奠定了良好的基礎。

本文將結合實例介紹VFP與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

’形成工作表名

End If

SCommand =“SELECT * FROM d:\vfp\學生成績表WHERE”+choice +“ INTO CURSOR TEMP” ’形成VFP查詢命令串

oFox.DoCmd Scommand ’執行VFP命令串

oFox.DataToClip “temp”, , 3

’將搜索結果以文本方式拷貝至剪切板

Range(“a1: a1”).Select

’指向拷貝目標區域左上角單元

ActiveSheet.Paste ’粘貼搜索結果

End Sub

上述Excel中的區域名稱(如“條件”和“連接條件”名稱)的設定方法是,在Excel中選擇菜單“插入->名稱->定義”來完成對給定區域名稱的設定,這個名稱可以在VBA中訪問,如前述中的“條件”和“連接條件”。

VFP使用Excel

OLE(Object Linking and Embedding)對象鏈接與嵌入,是Windows應用程序間相互傳遞和共享數據的一種有效方法。VFP借助于OLE不僅可共享其他應用程序的數據,而且還能以對象方式直接控制其他應用程序的運行,從而進一步擴展VFP的功能。VFP支持直接在程序中創建、使用和控制OLE對象,實現OLE自動化。作為OLE客戶,VFP與作為OLE服務器的Excel具有良好的編程接口,下述程序段用OLE方式實現所要求的功能。程序首先生成一個Excel的OLE對象OleApp以便對其進行操作,然后利用OLE功能從Excel表單中獲取欲查詢的條件,并控制Excel生成新的唯一的工作表,通過找尋當前操作的所有工作表達到名稱的唯一,VFP的查詢結果仍然使用剪切板的方式傳遞至Excel工作表中。

local condition,where1,first,scommand,cell,newsheet,found1,n

OleApp=CreateObject(“Excel.Application”)

&& 打開Excel,產生OLE對象

OleApp.Application.Caption=“VFP交互編程”

&& 指定標題欄名稱

OleApp.Application.Visible=.T.

&& 置Excel可見

OleApp.Application.WorkBooks.Open(“d:\vfp\VFP交互.xls”)

&& 打開Excel工作簿,用戶也可以修改連接條件或者查詢條件

where1=“”

&&保存SQL中where子句的變量

first=.t.

&&置首次進入“查詢”工作表中“條件”區域標志

found1=.f.

n=1

DO WHILE .T.

WITH OleApp.Application

nAnswer = MessageBox(“開始搜索?”, 32+4, “搜索指定數據”)

&&顯示搜索信息

IF (.NOT. (nAnswer=6))

&& 如按下“Yes”按鈕,則開始搜索,反之退出

EXIT

ENDIF

.Sheets(“查詢”).Select

&& 選取示例中的對應工作表

condition=.range(“連接條件”).value

&&得到“連接條件”區域中的邏輯連接符

for each cell in .range(“條件”).value

&&將表單區域內所有單元的數據拼接以形成where的連接邏輯串

If first Then

Where1 = Where1 + cell

&&首次進入時where子句中串前不需要邏輯連接符

first = .f. &&置非首次進入標志

Else

Where1=Where1 +“ ”+condition +“ ”+ cell

&&這里condition的值取and或者or

EndIf

next for

.Sheets.Add && 新建一工作表單

&&下面的for …each子句是用于找尋有否對應的工作表,若有則在搜索結果1、搜索結果2……搜索結果n中得到最大的n值以便產生下一個比n大1的新工作表“搜索結果&(n+1)”

for each newsheet in .worksheets

if “搜索結果”$ newsheet.name

n=max(val(subset(newsheet.name+space(2),9,2)),n) &&得到最大的n值

found1=.t. &&置找到工作表中前四個漢字是“搜索結果”的工作表

endif

next for

if not found1

.ActiveSheet.Name =“搜索結果1”

&& 指定工作表單的名稱

else

.activesheet.name=“搜索結果”+str(n+1,2)

&&得到唯一的工作表

endif

SCommand = “SELECT * FROM d:\vfp\學生成績表 WHERE ”+ALLTrim(where1) +

“INTO CURSOR TEMP”

&& 形成VFP查詢命令串

&Scommand && 執行VFP命令串

_VFP.DataToClip(“TEMP”, , 3)

&& 將搜索結果以文本方式拷貝至剪切板

.Range(“a1: a1”).Select

&& 指向拷貝目標區域左上角單元

.ActiveSheet.Paste

&& 粘貼搜索結果

ENDWITH

ENDDO

OleApp.Quit

&& 關閉Excel,保存更新后的工作簿文件

結束語

VFP與Excel的交互能力是很強的,用戶可以使用VFP處理數據庫的一些運算,如插入、排序、合并、選擇等,將結果交由Excel中進行一些后期的處理,甚至可以將一些抽取數據的條件直接加入到Excel的條件區域中,由VFP來讀取條件區域進行數據的篩選。總之,只要能充分利用好各自的優點,理解交互的接口方法,就一定能夠編寫出較適用的程序,滿足實際工作的需要。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 天美星空大象mv在线观看视频| 玖玖爱视频在线| 天天久久综合网| 欧美成人免费高清视频| 国产人妻互换一区二区| 中文字幕 日韩 欧美| 欧美日韩亚洲第一| 两根大肉大捧一进一出好爽视频| 又大又硬又爽免费视频| 国产精彩视频一区二区| 精品少妇在线视频| av黄色在线网站| 日本a级片免费观看| 欧美三级午夜理伦三级| 免费大片在线观看| 成人一区二区三| 久久黄色片网站| www.色.com| 日韩a级在线观看| 国产免费一区二区三区视频| 免费看黄色a级片| 思思久久精品视频| 成年人网站国产| 国自产拍偷拍精品啪啪一区二区| 免费观看国产视频在线| 国产免费xxx| 欧美 日韩 激情| 国语对白做受xxxxx在线中国| 亚洲免费看av| 日本免费成人网| 黄色国产精品视频| 亚洲精品综合在线观看| 久操手机在线视频| 国产v片免费观看| 五月天开心婷婷| wwwjizzjizzcom| 亚洲国产精品毛片av不卡在线| 丰满少妇在线观看| 免费大片在线观看| 波多野结衣天堂| 欧美精品一区二区性色a+v| 免费观看国产视频在线| 精品中文字幕av| 午夜一区二区视频| 免费看日本毛片| ijzzijzzij亚洲大全| 成人中文字幕av| 人妻av无码专区| 手机av在线网| 日韩福利视频在线| 欧美大片免费播放| 91丨九色丨蝌蚪| 成年人视频网站免费观看| 青青草综合在线| 不卡的av中文字幕| 欧美日韩激情四射| 日韩av片专区| 午夜精品久久久内射近拍高清| 亚洲第一页在线视频| 精品久久久噜噜噜噜久久图片| 成熟丰满熟妇高潮xxxxx视频| 日本网站在线看| 中文久久久久久| 18禁男女爽爽爽午夜网站免费| 精品国产一区二区三区无码| 色偷偷中文字幕| 天堂中文av在线| www.国产福利| 国产高清精品软男同| 亚洲va在线va天堂va偷拍| 丰满少妇在线观看| 久久综合久久色| 2022亚洲天堂| 欧洲熟妇精品视频| 熟妇人妻va精品中文字幕| 成人免费观看视频在线观看| 中文字幕日本最新乱码视频| 欧美日韩在线不卡视频| 亚洲一区二区三区四区五区xx| 精品视频无码一区二区三区| 久久久久久三级| 一级 黄 色 片一| 神马午夜伦理影院| 黄页免费在线观看视频| 男人和女人啪啪网站| 妺妺窝人体色www在线小说| 两根大肉大捧一进一出好爽视频| 人妻熟女一二三区夜夜爱| 亚洲成人av免费看| 永久av免费在线观看| 久久最新免费视频| 欧美 国产 综合| 潘金莲激情呻吟欲求不满视频| av亚洲天堂网| 青青在线视频免费观看| 久久精品香蕉视频| 无套内谢丰满少妇中文字幕| 国产av熟女一区二区三区| 国产成人精品无码播放| 天天操精品视频| 精品久久一二三| 日韩av加勒比| av免费观看大全| 中文字幕第88页| 欧美日韩成人免费视频| 亚洲少妇久久久| 野外做受又硬又粗又大视频√| 91热这里只有精品| 免费高清一区二区三区| 日韩高清第一页| 国产精品裸体瑜伽视频| 天堂在线一区二区三区| 2018中文字幕第一页| 在线免费黄色网| 日韩免费毛片视频| 成年在线观看视频| 亚洲午夜激情影院| 亚洲精品怡红院| 成人毛片视频网站| 大桥未久一区二区| 成人不卡免费视频| 日本激情综合网| 国产一区二区视频免费在线观看| 韩日视频在线观看| 午夜久久久久久久久久久| 亚洲欧美日本一区二区三区| 国产麻花豆剧传媒精品mv在线| 99在线观看视频免费| 成人免费看片视频在线观看| 手机在线免费观看毛片| 波多野结衣天堂| 男人舔女人下面高潮视频| 国产午夜伦鲁鲁| 免费av观看网址| 国产精品裸体瑜伽视频| av无码久久久久久不卡网站| 福利在线一区二区| 亚洲熟妇无码另类久久久| 欧美午夜性视频| 久久久久久人妻一区二区三区| av日韩在线看| 被灌满精子的波多野结衣| 国产免费黄色小视频| 国产av人人夜夜澡人人爽麻豆| 97久久国产亚洲精品超碰热| 久久精品xxx| 成人av一级片| 久久久久免费精品| 国产美女视频免费看| 黄色网zhan| 国产aaa一级片| 欧美一级xxxx| 国产日产欧美一区二区| 黄色片网址在线观看| 超碰网在线观看| 一级做a爱视频| www.夜夜爱| 日本久久精品一区二区| 国内av免费观看| 成人毛片视频网站| 蜜桃福利午夜精品一区| 青草视频在线观看视频| 国产精品无码一本二本三本色| 中文字幕在线视频一区二区三区| 国产在线无码精品| 日韩在线视频在线观看| 亚洲无在线观看| 国产深夜男女无套内射| 一起操在线视频| 黄页免费在线观看视频| 日韩欧美理论片| 国产91美女视频| 国产911在线观看| 日韩无套无码精品| 精品国偷自产一区二区三区| 亚洲成人福利在线| 国产女大学生av| 黄色网址在线免费看| 成人黄色一区二区| 欧美图片激情小说| 日日干日日操日日射| 免费日韩视频在线观看| 国产va亚洲va在线va| 亚洲成人手机在线观看| 看欧美ab黄色大片视频免费 | 国产精品少妇在线视频| 手机看片日韩国产| 黄色小视频免费网站| 777米奇影视第四色| 国产美女在线一区| 好吊色这里只有精品| 国产aⅴ爽av久久久久| 精品99在线视频| 丰满爆乳一区二区三区| av一区二区三区免费观看| 18视频在线观看娇喘| 精品国产乱码久久久久久1区二区| 日av中文字幕| 五月天亚洲视频| 999精品视频在线|