在线看毛片视频-国产免费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>
  • 天堂视频免费看| 国产成年人在线观看| 免费看黄色a级片| 在线能看的av网站| 好吊妞无缓冲视频观看| www.亚洲视频.com| 欧美 日韩 国产 在线观看| www.亚洲高清| 国产精品嫩草影视| 一级黄色大片儿| 欧美日韩亚洲国产成人| 真人抽搐一进一出视频| 日韩精品视频一区二区在线观看| 人妻有码中文字幕| 国产视频在线视频| 日韩av片专区| 777久久精品一区二区三区无码| 91视频 - 88av| 免费看一级大黄情大片| 久久久九九九热| 国产亚洲欧美在线视频| 日韩av播放器| 国产 日韩 亚洲 欧美| 久久人人爽av| 亚洲免费一级视频| 国产资源在线视频| 日本xxxxxxxxxx75| www.射射射| 九九爱精品视频| 欧美日韩福利在线| 日韩亚洲欧美视频| 国产夫妻自拍一区| 国产精品国产对白熟妇| 国产精品乱码久久久久| 亚洲国产精品毛片av不卡在线| av在线观看地址| wwwxxx黄色片| 一级片视频免费观看| 天堂av在线8| 男人草女人视频| 欧美乱做爰xxxⅹ久久久| 一区二区三区四区久久| 性生活免费观看视频| 日韩av综合在线观看| 噜噜噜久久亚洲精品国产品麻豆| 丰满人妻一区二区三区53号 | 欧美国产日韩激情| 免费av网址在线| 伊人精品视频在线观看| 久久久久久久久久久综合| 国产成人久久婷婷精品流白浆| 国产超级av在线| 人人干人人视频| 一级日本黄色片| 日韩人妻无码精品久久久不卡| 欧美视频在线第一页| 男人的天堂日韩| a级黄色片免费| 中文字幕成人在线视频| 国产精品igao激情视频| 韩国一区二区av| 国产 欧美 日本| 一级黄色录像免费看| 国产v片免费观看| 最新av网址在线观看| 亚洲欧美天堂在线| 欧美性受xxxxxx黑人xyx性爽| 国产a视频免费观看| 69久久久久久| 想看黄色一级片| 韩日视频在线观看| 国产高清精品在线观看| 精品日韩久久久| 三级黄色片免费观看| 一二三四中文字幕| 国产91在线免费| 经典三级在线视频| 日韩av片网站| 日韩精品xxxx| 香蕉视频在线网址| 爱情岛论坛成人| 免费黄色日本网站| 日本a级片在线观看| 在线黄色免费观看| 欧美精品一区免费| www.好吊操| 99亚洲国产精品| 中文字幕综合在线观看| 亚洲图色中文字幕| 五月天亚洲视频| 妞干网视频在线观看| 免费男同深夜夜行网站| 九九热视频免费| 孩娇小videos精品| 久草资源站在线观看| 大地资源网在线观看免费官网| 日韩av手机版| 人妻有码中文字幕| 中文字幕超清在线免费观看| 久艹在线免费观看| 欧美日韩一级在线| 日韩小视频在线播放| 国产真实老熟女无套内射| 草草草视频在线观看| 蜜臀精品一区二区| 日韩欧美视频网站| 国产又黄又猛又粗| 欧美一级特黄aaaaaa在线看片| 男女啪啪的视频| aaa毛片在线观看| 9l视频自拍9l视频自拍| 精品中文字幕av| 日本高清一区二区视频| 日本免费不卡一区二区| 爆乳熟妇一区二区三区霸乳| 黄色a级三级三级三级| 中文字幕日韩精品无码内射| 成人观看免费完整观看| 亚洲欧洲日本精品| 欧美女人性生活视频| www.五月天色| 日本中文字幕观看| 午夜免费福利小电影| www.欧美黄色| 波多野结衣在线免费观看| 男女av免费观看| 日本中文字幕网址| 9999在线观看| 97av中文字幕| 亚洲精品天堂成人片av在线播放| 一区二区在线播放视频| 国产a级片免费观看| 久久久久久久久久久久久国产精品| 在线观看17c| 国产aaa免费视频| 免费欧美一级视频| 日本女优爱爱视频| av丝袜天堂网| 国产午夜精品视频一区二区三区| 四虎影院一区二区| 精品久久久久久无码中文野结衣| 日本a级片在线播放| 国产二级片在线观看| 91蝌蚪视频在线观看| 一本之道在线视频| 91传媒久久久| av在线观看地址| 天天操天天爽天天射| 精品人妻人人做人人爽| 手机看片福利日韩| 国产尤物av一区二区三区| 日日躁夜夜躁aaaabbbb| 99热自拍偷拍| 福利视频一二区| 青青草原播放器| 97公开免费视频| 国产视频一区二区视频| 宅男噜噜噜66国产免费观看| www婷婷av久久久影片| 亚洲国产成人va在线观看麻豆| aⅴ在线免费观看| 草草草在线视频| 色一情一乱一伦一区二区三区日本| 久久99久久99精品| 国产精品网站免费| 农村妇女精品一二区| 无码日韩人妻精品久久蜜桃| 91日韩视频在线观看| 五月天开心婷婷| 欧美精品一区二区三区三州| 成年人视频观看| 国产精品v日韩精品v在线观看| 午夜激情在线观看视频| 丝袜制服一区二区三区| 影音先锋成人资源网站| 日韩在线综合网| 女同激情久久av久久| 拔插拔插海外华人免费| 日本人视频jizz页码69| 伊人网在线免费| 少妇人妻互换不带套| 国产欧美久久久久| av观看免费在线| 国产成人无码精品久久久性色| 中日韩av在线播放| 日韩精品一区二区三区不卡| 奇米影音第四色| 熟妇人妻va精品中文字幕| 日韩视频在线观看一区二区三区| 亚洲国产精品久久久久婷蜜芽| 手机在线免费观看毛片| 无码少妇一区二区三区芒果| 久久亚洲精品无码va白人极品| 亚洲欧美偷拍另类| www国产精品内射老熟女| 亚洲精品第三页| 欧美成人三级在线播放| 国产一区二区三区在线免费| 熟女人妇 成熟妇女系列视频| 色播五月综合网|