国产午夜成人免费看片无遮挡_日本免费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>

        在线观看欧美日本| 国产精品一区二区无线| 蜜桃av噜噜一区| 欧美一区二区精品在线| 亚洲高清三级视频| 日韩欧美另类在线| 国产一区二区三区黄视频| 国产嫩草影院久久久久| 91网站最新地址| 美女免费视频一区二区| 国产女人18毛片水真多成人如厕| 色综合天天狠狠| 久久成人久久爱| 亚洲黄色小说网站| 精品国产免费一区二区三区四区| 99国产麻豆精品| 琪琪久久久久日韩精品| 久久久久久久久久美女| 欧美三级日韩三级国产三级| 国产乱子伦一区二区三区国色天香| 国产精品美女一区二区在线观看| 欧美日韩在线播放一区| 不卡的av中国片| 久久精品国产澳门| 亚洲大片精品永久免费| 国产日韩精品一区二区浪潮av| 色欧美日韩亚洲| 国产最新精品免费| 日韩国产精品久久久| ㊣最新国产の精品bt伙计久久| 欧美一级高清大全免费观看| 色婷婷综合久久久| 风流少妇一区二区| 美女精品一区二区| 午夜视频一区二区| 一区二区三区在线免费视频| 国产亚洲人成网站| 2014亚洲片线观看视频免费| 欧美一区二区三区思思人| 91视视频在线观看入口直接观看www| 理论电影国产精品| 强制捆绑调教一区二区| 亚洲不卡av一区二区三区| 国产精品传媒入口麻豆| 日本一区二区三区电影| 国产日产欧美精品一区二区三区| 欧美一区二区三区日韩视频| 91福利在线看| 91偷拍与自偷拍精品| 成人激情黄色小说| 不卡av电影在线播放| 国产福利一区在线观看| 国产乱码精品一区二区三区忘忧草| 三级精品在线观看| 蜜臀99久久精品久久久久久软件 | 欧美日韩一区在线| 91黄色免费观看| 在线免费一区三区| 欧美三级日韩在线| 欧美顶级少妇做爰| 欧美一区二区三区在线看| 91精品国产色综合久久久蜜香臀| 欧美精品在欧美一区二区少妇| 欧美日韩国产综合草草| 久久亚区不卡日本| 精品福利视频一区二区三区| 久久久亚洲高清| 欧美激情一区二区在线| 欧美国产1区2区| 亚洲女与黑人做爰| 日日夜夜一区二区| 国产成人久久精品77777最新版本| 成人在线视频一区二区| 色嗨嗨av一区二区三区| 欧美一级片在线| 日本一区二区三区国色天香 | 99re这里只有精品首页| 91网页版在线| 欧美精品粉嫩高潮一区二区| 精品国内二区三区| 18涩涩午夜精品.www| 日韩av网站在线观看| 国产精品1区2区3区| 91麻豆免费看| 日韩精品一区二区在线观看| 久久天天做天天爱综合色| 国产精品成人午夜| 奇米777欧美一区二区| 国产91在线看| 69堂精品视频| 国产精品福利一区二区| 日本va欧美va欧美va精品| 成人小视频在线| 91精品国产综合久久蜜臀| 欧美国产日韩亚洲一区| 亚洲高清视频中文字幕| 懂色中文一区二区在线播放| 欧美日韩情趣电影| 国产精品色婷婷| 奇米精品一区二区三区四区| 91原创在线视频| 久久久久久久久久久99999| 亚洲国产乱码最新视频| 国产成人精品免费视频网站| 欧美精品成人一区二区三区四区| 国产精品天干天干在线综合| 欧美96一区二区免费视频| 一本一道波多野结衣一区二区| 久久久精品欧美丰满| 青青草伊人久久| 欧美日韩黄视频| 亚洲一二三专区| 91福利视频网站| 亚洲精品中文在线| av不卡一区二区三区| 久久久久久久网| 久久不见久久见免费视频7| 在线成人av影院| 亚洲国产日韩av| 欧美视频精品在线| 亚洲福利一区二区| 欧美在线免费观看亚洲| 日韩一区在线播放| 成人黄色小视频| 欧美韩国日本综合| 成人性生交大片免费看视频在线 | 国产不卡在线视频| 国产精品久久国产精麻豆99网站| 麻豆精品国产91久久久久久| 在线综合+亚洲+欧美中文字幕| 亚洲午夜久久久| 制服.丝袜.亚洲.另类.中文| 日韩高清欧美激情| 欧美videos大乳护士334| 视频一区视频二区在线观看| 欧美日韩国产首页在线观看| 三级成人在线视频| 欧美xxxx老人做受| 国产激情精品久久久第一区二区| 国产色91在线| 不卡在线视频中文字幕| 亚洲精品少妇30p| 制服丝袜亚洲网站| 国产盗摄女厕一区二区三区| 国产亚洲欧美日韩日本| www.欧美精品一二区| 一区二区三区四区蜜桃 | 亚洲一区二区精品视频| 欧美日韩一区二区电影| 日本欧美在线看| 久久久久久久性| 91在线视频播放地址| 午夜av一区二区| 久久亚洲精品国产精品紫薇| av电影在线观看完整版一区二区| 一区二区三区国产精华| 91精品国产免费久久综合| 国产精一区二区三区| 亚洲少妇屁股交4| 欧美乱熟臀69xxxxxx| 九色|91porny| 中文字幕一区二区三区乱码在线| 欧美性感一类影片在线播放| 久久激情五月激情| 亚洲精品日产精品乱码不卡| 欧美变态口味重另类| 91免费精品国自产拍在线不卡| 日产欧产美韩系列久久99| 国产精品成人免费| 精品少妇一区二区| 99久久久无码国产精品| 美国欧美日韩国产在线播放| 中文字幕免费不卡| 91精品久久久久久蜜臀| 91女神在线视频| 狠狠色丁香久久婷婷综合_中| 亚洲免费在线视频一区 二区| 日韩精品一区在线| 欧美手机在线视频| 成人黄色av电影| 国产综合一区二区| 天天免费综合色| 亚洲人吸女人奶水| 国产欧美精品在线观看| 日韩你懂的在线播放| 色婷婷av一区二区三区软件| 国产精品小仙女| 日本特黄久久久高潮| 亚洲精品视频免费看| 欧美国产成人精品| 久久欧美一区二区| 精品欧美乱码久久久久久| 欧美福利电影网| 欧美日产国产精品| 欧洲国产伦久久久久久久| 91色|porny| 在线免费精品视频| 在线观看国产日韩| 在线视频你懂得一区| 一本在线高清不卡dvd|