2010-10-29 61 views
2

我在MS Access中有4個圖片控件的報告。在detail部分的格式事件中,我有代碼根據DAO.recordset中字段的值設置圖片屬性。以下是我的代碼示例。圖片不顯示在圖片控件中

For i = 0 To 3 
    If Not rs.EOF Then 
     Me.Controls("img" & i).Picture = blobGet(rs!phBlobId) 
     rs.MoveNext 
    Else 
     Me.Controls("img" & i).Picture = "" 
    End If 
Next i 

rs!phBlobId基本上是一個文件名。 blobGet函數返回圖片的完整路徑,然後在報表的詳細信息部分設置正確控件的圖片屬性。

我不確定所有的原因,但在某些情況下圖片不會顯示在控件中。我有一個類似的表單設置,並沒有任何問題,我只有在報告時纔有問題。

似乎可能是原因的一件事是圖片的大小。如果我插入一張大圖片(說超過5兆),它有時不會顯示。隨着不同的圖片組合出現不同的圖片。

我對如上所述的問題的兩種解決方案開放,或對如何在報告上顯示這些圖片的替代想法開放。一個絕對的要求是用VBA設置圖片,因爲圖片的確切排列基於不相關的變量而變化。

+0

我發現從報表細節的OnFormat事件中查找記錄集中的內容非常非常奇怪。我傾向於將數據放入報告的記錄源中。如果它是不相關的表,無關緊要 - 將它放入沒有連接的記錄源中,並將所需的字段放入記錄源中,並且它們始終可供您使用。 – 2010-10-29 23:27:19

+0

我同意,這很奇怪!我這樣做的原因是圖片控件的佈局非常具體,它們在垂直和水平方向上重疊。我試圖完成的是誠實地將Access幾乎擴展到桌面出版程序中。我不會推薦任何其他人嘗試它,它不是很有趣。 ;) – Icode4food 2010-11-01 12:20:58

+0

有時,增加Windows虛擬內存有助於Access報告不顯示圖像。 – MaxD 2012-05-21 07:59:54

回答

2

我想出的解決方案是簡單地使用imageMagick調整圖像的大小。這實際上爲我提供了一些好處。自從我處理較小的圖像以來,其中至少有一項顯着的性能改進。