国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

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

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來讀取條件區域進行數據的篩選。總之,只要能充分利用好各自的優點,理解交互的接口方法,就一定能夠編寫出較適用的程序,滿足實際工作的需要。

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

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产精品久久久久四虎| 久久尤物电影视频在线观看| 在线播放亚洲一区| 亚洲综合在线视频| 欧美日韩国产大片| 日本不卡在线视频| 国产三级一区二区三区| 99re66热这里只有精品3直播| 亚洲人123区| 69堂精品视频| 粉嫩aⅴ一区二区三区四区五区| 17c精品麻豆一区二区免费| 91久久精品一区二区二区| 五月婷婷另类国产| 国产午夜精品一区二区| 欧美专区在线观看一区| 美女视频一区二区三区| 国产精品色在线| 欧美精品久久99久久在免费线| 激情六月婷婷久久| 一区二区日韩电影| 2017欧美狠狠色| 欧美在线不卡一区| 福利一区在线观看| 日本在线播放一区二区三区| 一区精品在线播放| 日韩欧美123| 在线影院国内精品| 成人三级在线视频| 免费成人在线网站| 亚洲一区二区视频在线观看| 国产亚洲午夜高清国产拍精品| 欧美天堂亚洲电影院在线播放| 国产精品一区二区三区网站| 日本不卡一区二区三区| 亚洲免费在线视频| 国产午夜久久久久| 欧美v日韩v国产v| 欧美日韩成人激情| 91免费观看国产| 成人av在线播放网址| 麻豆freexxxx性91精品| 亚洲国产日韩在线一区模特| 亚洲图片另类小说| 国产精品乱人伦中文| 精品国产在天天线2019| 91精品国产乱| 欧美精品九九99久久| 91黄色免费网站| 一本到高清视频免费精品| 成人黄色小视频| 成人av网站免费观看| 床上的激情91.| 国产激情精品久久久第一区二区| 久久99蜜桃精品| 奇米精品一区二区三区在线观看一| 亚洲一区二区偷拍精品| 亚洲国产wwwccc36天堂| 亚洲观看高清完整版在线观看| 一区二区三区中文在线| 亚洲已满18点击进入久久| 一区二区三区四区在线| 夜夜亚洲天天久久| 日韩高清电影一区| 精品一区免费av| 国产精品一区二区久久不卡| 国产一区二区在线电影| 国产成人激情av| www.日本不卡| 欧美色图天堂网| 91精品国产综合久久精品性色| 欧美精品久久久久久久久老牛影院| 在线综合+亚洲+欧美中文字幕| 日韩欧美国产一区二区三区 | 91黄色激情网站| 欧美午夜不卡视频| 欧美日韩另类一区| 精品人在线二区三区| 久久久777精品电影网影网 | 风间由美一区二区av101| 不卡视频一二三四| 在线观看免费成人| 精品国产乱码久久久久久闺蜜| 国产亚洲精品bt天堂精选| 亚洲视频在线一区| 石原莉奈在线亚洲二区| 国产成人一区在线| 欧洲精品在线观看| 亚洲精品在线三区| 亚洲色欲色欲www| 美国三级日本三级久久99| 国产不卡视频在线播放| 欧美丝袜丝交足nylons图片| 欧美zozozo| 亚洲国产精品欧美一二99| 国产一区啦啦啦在线观看| 日本韩国欧美三级| 久久九九久精品国产免费直播| 亚洲欧美怡红院| 国产一区二区网址| 欧美日韩一级视频| 中文字幕永久在线不卡| 久久成人麻豆午夜电影| 欧美色大人视频| 国产精品电影院| 国产最新精品免费| 欧美电影在哪看比较好| 亚洲欧美另类图片小说| 国内精品写真在线观看| 欧美日韩免费视频| 亚洲欧洲综合另类| 国产不卡高清在线观看视频| 欧美一区欧美二区| 午夜国产精品影院在线观看| 色婷婷精品久久二区二区蜜臂av | 中文字幕国产精品一区二区| 日本aⅴ精品一区二区三区| 91极品美女在线| 日韩美女视频一区二区 | 国产成人免费av在线| 日韩欧美精品在线视频| 日韩精品一卡二卡三卡四卡无卡| 91在线免费播放| 中文字幕中文在线不卡住| 国产传媒久久文化传媒| www欧美成人18+| 国产在线一区观看| 26uuu亚洲综合色| 国产麻豆视频一区| 精品美女一区二区| 国产揄拍国内精品对白| 日韩精品一区二区三区swag| 日韩电影在线免费| 日韩视频国产视频| 美女视频一区二区| 精品国产乱码久久久久久老虎| 蜜臀av一区二区在线观看| 欧美一区二区在线免费观看| 日本不卡高清视频| 精品久久国产字幕高潮| 激情欧美一区二区三区在线观看| 久久久久久毛片| 国产成人精品1024| 一区二区三区四区av| 国产suv精品一区二区883| 国产日韩视频一区二区三区| 国产成人av一区二区三区在线观看| 国产视频亚洲色图| 成人免费福利片| 亚洲男人的天堂网| 91.成人天堂一区| 国产精品一区免费视频| 亚洲四区在线观看| 91精品国产综合久久小美女| 久久99久久久欧美国产| 中文av一区特黄| 欧美日韩一本到| 激情综合网激情| 亚洲丝袜制服诱惑| 欧美日韩亚洲高清一区二区| 蜜桃视频第一区免费观看| 国产欧美综合在线观看第十页| jlzzjlzz欧美大全| 亚洲国产美女搞黄色| www国产成人免费观看视频 深夜成人网 | 久久这里只精品最新地址| 成人av网址在线观看| 日韩制服丝袜先锋影音| 国产亚洲精品aa午夜观看| 欧美亚洲自拍偷拍| 韩国av一区二区三区四区 | 久久疯狂做爰流白浆xx| 1区2区3区国产精品| 欧美电视剧在线看免费| 日本高清视频一区二区| 极品少妇xxxx偷拍精品少妇| 一区二区在线观看视频| 26uuu欧美| 欧美肥胖老妇做爰| 色综合天天综合狠狠| 久久99精品久久久久久动态图 | 天天色综合成人网| 国产精品久久久久国产精品日日| 欧美日韩精品一区二区三区蜜桃 | 国产精品18久久久久久vr| 樱花影视一区二区| 国产日韩欧美激情| 欧美成人女星排名| 欧美精品v日韩精品v韩国精品v| 成人一区二区视频| 久久99国产精品尤物| 亚洲国产精品一区二区尤物区| 国产免费久久精品| 国产亚洲自拍一区| 2019国产精品| 欧美一区二区精品| 欧美二区三区的天堂| 欧美丝袜第三区| 91精品办公室少妇高潮对白| 91年精品国产|