access找不到输入表或者dual_在Access窗体中显示指定路径的图片
↑↑↑點擊上方圖片,了解詳情
? ? ? 在Access中,如果把圖形對象以O(shè)LE格式的字段保存,那么在窗體中可以直接顯示出圖片來。但是這樣做有以下不足:
? ? ? 一、需要將圖片逐一插入到表中,工作量太大。
? ? ? 二、使數(shù)據(jù)庫文件變得龐大。
? ? ? 三、相同的圖片文件,如果在不同數(shù)據(jù)庫中都要引用,就需要重復(fù)插入,非常浪費。
? ? ? 因此,可以把圖片文件按照一定的路徑儲存起來,在窗體中通過這個路徑找到相應(yīng)的圖片,并顯示出來。這樣可以大大節(jié)省操作時間、儲存空間,而且便于圖片文件在不同數(shù)據(jù)庫中的共享。
? ? ? 在網(wǎng)上查閱了大量的相關(guān)資料,看到的文章和范例大多是高手寫的,可能忽略了像我輩這樣的菜鳥級愛好者的水平。把他們提供的例子看了半天,總是不得要領(lǐng)。在反復(fù)嘗試之后終于成功了。欣喜之余,除了感謝那些網(wǎng)上的資源以及提供者,還想把自己的一點經(jīng)驗寫出來,希望對那些和我一樣的業(yè)余愛好者有一點幫助。下面就以Access2003(本人依然不習(xí)慣07和10的界面,堅守著03,使用07和10的朋友可以嘗試一下,原理應(yīng)該是一樣的)為例談一談如何實現(xiàn)在窗體中顯示指定路徑的圖片。? ? ? 比如我們要建立一個“古代語言學(xué)家”的數(shù)據(jù)庫,希望在窗體中顯示每個人的畫像,可以分下面幾個步驟實現(xiàn):? ? ? 一、建立一個叫做“古代語言學(xué)家”的文件夾,在這個文件夾中建立一個叫做“古代語言學(xué)家”的數(shù)據(jù)庫,在數(shù)據(jù)中建立一個叫做linguist的表,表中包含ID(用作主鍵的編號)、linguist(語言學(xué)家的姓名)等字段。? ? ? 二、在文件夾“古代語言學(xué)家”中建立一個名為“頭像”的文件夾,把所有的語言學(xué)家的頭像儲存在這個文件夾里,每個人的頭像以姓名或ID為文件名(注意:最好以數(shù)據(jù)表中的“主鍵”作為文件名,這樣可以保證不重復(fù))。? ? ? 三、建立一個窗體(可以利用窗體向?qū)?,窗體上要包含反映圖片路徑變量的字段,如本例中,頭像是以姓名命名的,姓名是變量(每個語言學(xué)家的姓名不同),所以窗體上必須包含字段linguist。至于窗體上對象的隱現(xiàn),可以通過改變對象屬性中的“可見性”來控制。比如,如果頭像是以ID命名的,在窗體上就必須包含ID這個字段,如果不希望ID在窗體上顯示,可以把ID的可見性設(shè)為“否”。? ? ? 四、在窗體中插入一個圖形控件。可以先選擇任意一個圖片。? ? ? 五、查看圖形控件的屬性,把圖片刪除(即圖中選中的圖片路徑)。圖片類型、縮放模式等可以根據(jù)需要設(shè)定。
? ? ? 六、在“視圖”中打開“代碼”編輯窗口,加入以下一段代碼并保存:Private Sub Form_Current()Dim PhotoPath As StringPhotoPath = CurrentProject.Path & "\頭像\" & Me![linguist] & ".jpg"Me.Image7.Picture = PhotoPathEnd Sub? ? ? 關(guān)于這段代碼的幾點說明:? ? ? 1、Dim語句是一個聲明變量的語句,String代表字符串。上面的Dim語句表示聲明PhotoPath為一個字符串。其中PhotoPath是變量名,可以自己命名。? ? ? 2、PhotoPath =一句定義了圖片的路徑。CurrentProject.Path是當(dāng)前對象的路徑,是個相對路徑。&是連接符,也可以用+,表示把前后的字符連接起來。Me表示當(dāng)前的窗體,Me![linguist]則表示當(dāng)前窗體中的linguist字段。把這段語句所代表的路徑轉(zhuǎn)換出來即:.\頭像\ Me![linguist].jpg;也就是:當(dāng)前路徑下(與數(shù)據(jù)庫文件同目錄下),“頭像”文件夾中,文件名等于窗體中l(wèi)inguist字段的值的jpg文件。再復(fù)雜的路徑,只要是有規(guī)則的,都可以用這個方法定義。注意:所有的值都需要用半角的雙引號"括起來;表示文件夾的前后的斜杠\和后綴名以及前面的.不要丟掉。? ? ? 3、Me.Image7.Picture = PhotoPath一句定義了窗體中的圖形控件來源等于上一句定義的路徑。注意:Image7是圖形控件名,要與窗體中的控件名一致,本例中是Image7。在窗體的設(shè)計視圖中也可以對圖形控件重新命名。? ? ? 七、完成以上的操作,打開窗體就可以看到圖片了。? ? ? 八、上面的代碼沒有定義當(dāng)在給出的路徑找不到相應(yīng)的圖片時的動作,因此,當(dāng)找不到圖片時會現(xiàn)錯誤提示。? ? ? 九、將代碼稍做修改。如下:Private Sub Form_Current()Dim PhotoPath As StringPhotoPath = CurrentProject.Path & "\頭像\" & Me![linguist] & ".jpg"If Dir(PhotoPath) = "" Then PhotoPath = CurrentProject.Path & "\noimg.jpg"Me.Image7.Picture = PhotoPathEnd Sub? ? ? 說明:If一句定義了當(dāng)在上一句定義的路徑中找不到圖片時,圖片的路徑為當(dāng)前目錄中的noimg.jpg。為保證其有效,需要在當(dāng)前文件夾中有圖片文件noimg.jpg。? ? 下面是修改后的效果:? ? ? 大功告成了!? ? ? 十、如果要在窗體中顯示多個圖片,只需聲明多個相關(guān)的變量,定義相應(yīng)的圖片路徑即可。比如:把古代語言學(xué)家的全身像放在文件夾“全像”中,同樣以姓名命名。要在窗體中同時顯示頭像和全像,可以將代碼修改為:? Private Sub Form_Current()? ? Dim PhotoPath As String, photopath2 As String? ? PhotoPath = CurrentProject.Path & "\頭像\" & Me![linguist] & ".jpg"? ? If Dir(PhotoPath) = "" Then PhotoPath = CurrentProject.Path & "\noimg.jpg"? ? Me.Image7.Picture = PhotoPath? ? photopath2 = CurrentProject.Path & "\全像\" & Me![linguist] & ".jpg"? ? If Dir(photopath2) = "" Then photopath2 = CurrentProject.Path & "\noimg.jpg"? ? Me.Image9.Picture = photopath2? End Sub? ? ? 下面是修改后的效果:
End推薦閱讀Access訓(xùn)練營?從0基礎(chǔ)開始,循序漸進,系統(tǒng)化的訓(xùn)練營課程,整合作業(yè)、課表、社群,為學(xué)員提供答疑,獲得更佳的學(xué)習(xí)效果。【詳情>>】快速開發(fā)財務(wù)管理系統(tǒng)?緊密結(jié)合職場的一個課程,參加培訓(xùn)不僅可提升開發(fā)技能,而且可獲得案例源代碼,立即投入到實際工作中應(yīng)用。【詳情>>】Access軟件作品?十二位Access學(xué)員對自已開發(fā)的軟件進行了介紹并分享開發(fā)心得,一起來了解Access開發(fā)的軟件。【詳情>>】從Excel到Access數(shù)據(jù)庫?為廣大Excel用戶了解、學(xué)習(xí)Access數(shù)據(jù)庫開設(shè)的一個實用課程,側(cè)重于數(shù)據(jù)統(tǒng)計分析。【詳情>>】Access每天3分鐘?視頻課程共50集,Access的基礎(chǔ)知識并結(jié)合示例詳細(xì)講解,每集視頻只有短短幾分鐘,學(xué)員可以利用碎片化的時間,每天進步一點點【詳情>>】張志,Access數(shù)據(jù)庫培訓(xùn)講師,『Access軟件網(wǎng)』創(chuàng)始人,服務(wù)過的知名企業(yè)有北京奔馳、立達(中國)紡織儀器、宜家(中國)投資等。 2003~2013年連續(xù)10年獲微軟最有價值專家。【詳情>>】總結(jié)
以上是生活随笔為你收集整理的access找不到输入表或者dual_在Access窗体中显示指定路径的图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 男子买898元零食P图付款 被抓现行:实
- 下一篇: 可视化管理_RFID技术实施智能仓储管理