通過(guò)Access從Web獲取MySQL數(shù)據(jù)
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-02-19 12:42:44 閱讀次數(shù):3210次
MySQL是當(dāng)前最流行的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)其中的原因包括
運(yùn)行速度快
免費(fèi)
能運(yùn)行在Linux及其他的一些平臺(tái)
能與Apache(一種流行的網(wǎng)絡(luò)服務(wù)器)完美結(jié)合
能與 PHP完美結(jié)合
MySQL具有一個(gè)ODBC接口如果你操作的是網(wǎng)絡(luò)服務(wù)器或MySQL服務(wù)器并想把數(shù)據(jù)關(guān)聯(lián)到桌面應(yīng)用程序采用ODBC接口是一個(gè)很好的方式但如果你不是對(duì)服務(wù)器操作訪(fǎng)問(wèn)MySQL的端口很有可能無(wú)效此時(shí)只能尋求其他方法來(lái)操作你的數(shù)據(jù)
存在的問(wèn)題
所提及的問(wèn)題都是針對(duì)客戶(hù)機(jī)而言的出于安全起見(jiàn)客戶(hù)機(jī)程序一般都通過(guò)一個(gè)主機(jī)選擇網(wǎng)絡(luò)代表從而避免在網(wǎng)絡(luò)上頻繁地登錄自己的系統(tǒng)許多主機(jī)都能提供合適的條件和MySQL可擴(kuò)展的FrontPageCGI及其他站點(diǎn)制作工具它們也能滿(mǎn)足硬件和軟件的匹配問(wèn)題這一獨(dú)特的主機(jī)甚至能提供各種工具幫助你增加或刪除你的MySQL數(shù)據(jù)庫(kù)但是它只以基本的MySQL存放處格式進(jìn)行這就不能夠直接地讀入Access或其他的桌面程序
客戶(hù)機(jī)程序不想在自己?jiǎn)挝簧系姆?wù)機(jī)安裝MySQL可以通過(guò)我的程序來(lái)傳遞數(shù)據(jù)只要在我的機(jī)器上運(yùn)行MySQL我可以人工地通過(guò)主機(jī)存放處獲取數(shù)據(jù)這一過(guò)程包括把數(shù)據(jù)加載到數(shù)據(jù)庫(kù)并通過(guò)ODBC傳送到Access然后向客戶(hù)機(jī)發(fā)送數(shù)據(jù)庫(kù)內(nèi)容我并不介意所完成的這些工作但是我們應(yīng)該簡(jiǎn)化一些不必要的工作而不要過(guò)多地依賴(lài)于人工操作
讓我再說(shuō)明一下以上的過(guò)程首先主機(jī)在網(wǎng)頁(yè)上顯示數(shù)據(jù)存放處通過(guò)簡(jiǎn)單的代碼和注冊(cè)我獲取了數(shù)據(jù)庫(kù)的數(shù)據(jù)注冊(cè)之原因是出于安全考慮現(xiàn)在我采用微軟的網(wǎng)頁(yè)瀏覽器ActiveX控件直接操作Access數(shù)據(jù)庫(kù)這就允許用戶(hù)很容易地通過(guò)注冊(cè)過(guò)程點(diǎn)擊按鈕即可獲取MySQL數(shù)據(jù)然后把數(shù)據(jù)傳遞到Access數(shù)據(jù)庫(kù)的相應(yīng)表中只要數(shù)據(jù)是在Access數(shù)據(jù)庫(kù)中用戶(hù)就可以用ODBC或他們慣用的方法把數(shù)據(jù)傳遞到ERP系統(tǒng)或其他專(zhuān)用系統(tǒng)
Microsoft Access數(shù)據(jù)庫(kù)
Access數(shù)據(jù)庫(kù)相當(dāng)簡(jiǎn)單它是由一些數(shù)據(jù)表組成數(shù)據(jù)表列舉你要添加的數(shù)據(jù)在這一節(jié)里我采用的數(shù)據(jù)表名為Sales_Data是由一個(gè)虛擬網(wǎng)站上的購(gòu)車(chē)數(shù)據(jù)組成同樣這一數(shù)據(jù)表應(yīng)和主機(jī)上的MySQL數(shù)據(jù)表無(wú)論在名字還是結(jié)構(gòu)上都要完全一樣事實(shí)上我們首先要在Access(圖A)中生成一個(gè)數(shù)據(jù)表然后通過(guò)ODBC把數(shù)據(jù)轉(zhuǎn)移到當(dāng)?shù)胤?wù)器的MySQL上
Figure A

Access應(yīng)用程序打開(kāi)的同時(shí)也打開(kāi)了網(wǎng)頁(yè)控制面板窗體在我的例程中程序在我的服務(wù)器上通過(guò)了PHP注冊(cè)
Figure B

采用的ActiveX控件名為WebBrowser執(zhí)行的代碼如下
Private Sub Form_Load()
WebBrowserNavigate ~stew/mysql/
End Sub
Figure C

MySQL screen shot
窗體中其他部分包括有兩個(gè)按鈕第一個(gè)按鈕(彈出控制面板)通過(guò)下面的代碼顯示MySQL的屏幕(如圖C)
Private Sub LoadControlPanel_Click()
WebBrowserNavigate ~stew/mysql/mysql_dumpphp
End Sub
第二個(gè)按鈕獲取數(shù)據(jù)這是代碼中的主要部分
接著你將會(huì)看到Access數(shù)據(jù)庫(kù)的一個(gè)下拉式列表并且這一列表中已經(jīng)有數(shù)據(jù)在這一例子中列表名為Sales_Data
再者復(fù)選框會(huì)讓選擇在添加數(shù)據(jù)之前是否刪除舊的數(shù)據(jù)你可以在這里做一些有用的操作但這些操作必須是合法的
最后兩個(gè)文本接口包含了單位名稱(chēng)以及MySQL數(shù)據(jù)庫(kù)名稱(chēng)
總結(jié)
以上就是過(guò)程的全部用戶(hù)必須通過(guò)網(wǎng)絡(luò)接口來(lái)運(yùn)行主機(jī)上的數(shù)據(jù)庫(kù)查詢(xún)當(dāng)MySQL存放處顯示在窗體瀏覽器上(如圖D)點(diǎn)擊獲取數(shù)據(jù)按鈕就可以獲取數(shù)據(jù)并存放在Access數(shù)據(jù)表中程序也會(huì)檢測(cè)數(shù)據(jù)存放處是否是基于一定格式的MySQL并確保是正確的數(shù)據(jù)庫(kù)和數(shù)據(jù)表如果這些規(guī)則滿(mǎn)足就會(huì)執(zhí)行程序中的INSERT命令把數(shù)據(jù)添加到目標(biāo)數(shù)據(jù)表此時(shí)會(huì)彈出一個(gè)消息對(duì)話(huà)框以顯示這一過(guò)程如果有錯(cuò)誤產(chǎn)生則返回到窗體Listing A包含了完整的代碼
Figure D

MySQL screen dump
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)