設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

123下一頁
返回列表 發(fā)新帖
查看: 12139|回復(fù): 21
打印 上一主題 下一主題

Show 一個沒有菜單的界面(ADP)

[復(fù)制鏈接]

點擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2011-7-19 00:29:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式








界面導(dǎo)航元素:選項卡、子窗體、按鈕

(注:照片的存儲格式為直接的JPG文件存儲在image字段,顯示采用MSFORM2.0.Image控件,非ACCESS的Image和綁定對象控件, 這樣的好處是占用空間小。)

請大家評評。






本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享分享 分享淘帖2 訂閱訂閱
2#
發(fā)表于 2011-7-19 06:05:54 | 只看該作者
好早呀

點擊這里給我發(fā)消息

3#
發(fā)表于 2011-7-19 10:01:55 | 只看該作者
界面布置緊湊合理,贊!
照片顯示采用MSFORM2.0.Image控件,是否還要釋放臨時圖片文件?

點擊這里給我發(fā)消息

4#
 樓主| 發(fā)表于 2011-7-19 10:44:59 | 只看該作者
t小寶 發(fā)表于 2011-7-19 10:01
界面布置緊湊合理,贊!
照片顯示采用MSFORM2.0.Image控件,是否還要釋放臨時圖片文件?

不用產(chǎn)生臨時文件,直接讀字段內(nèi)容。
注:MSFORM2.0為Office自帶控件,通常用于UserForm(用戶窗體)。
5#
發(fā)表于 2011-7-19 10:58:36 | 只看該作者
漂亮啊,學(xué)習(xí).

點擊這里給我發(fā)消息

6#
 樓主| 發(fā)表于 2011-7-19 11:03:08 | 只看該作者
貼一段讀圖片的代碼:
  1. Option Compare Database
  2. Option Explicit

  3. Private Const S_OK = 0    ' indicates successful HRESULT
  4. Private Const sIID_IPicture = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}"
  5. Private Const GMEM_MOVEABLE = &H2

  6. Private Type GUID    ' 16 bytes (128 bits)
  7.   dwData1 As Long    ' 4 bytes
  8.   wData2 As Integer  ' 2 bytes
  9.   wData3 As Integer  ' 2 bytes
  10.   abData4(7) As Byte ' 8 bytes, zero based
  11. End Type

  12. Public Enum CBoolean   ' enum members are Long data types
  13.   CFalse = 0
  14.   CTrue = 1
  15. End Enum

  16. Private Declare Function GlobalAlloc Lib "kernel32" (ByVal uFlags As Long, ByVal dwBytes As Long) As Long
  17. Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
  18. Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
  19. Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long

  20. Private Declare Function CLSIDFromString Lib "ole32" (ByVal lpsz As Any, pCLSID As GUID) As Long
  21. Private Declare Function OleLoadPicture Lib "olepro32" (pStream As Any, ByVal lSize As Long, ByVal fRunmode As CBoolean, riid As GUID, ppvObj As Any) As Long

  22. Private Declare Function CreateStreamOnHGlobal Lib "ole32" (ByVal hGlobal As Long, ByVal fDeleteOnRelease As CBoolean, ppstm As Any) As Long

  23. Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal dwLength As Long)


  24. Public Function PictureFromBits(abPic() As Byte) As IPicture  ' not a StdPicture!!
  25.     Dim nLow As Long, cbMem  As Long, hMem  As Long
  26.     Dim lpMem  As Long, IID_IPicture As GUID
  27.     Dim IStm As stdole.IUnknown, IPic As IPicture
  28.     ' Get the size of the picture's bits
  29.     On Error GoTo Out
  30.     nLow = LBound(abPic)
  31.     On Error GoTo 0
  32.     cbMem = (UBound(abPic) - nLow) + 1
  33.     ' Allocate a global memory object
  34.     hMem = GlobalAlloc(GMEM_MOVEABLE, cbMem)
  35.     If hMem Then
  36.         ' Lock the memory object and get a pointer to it.
  37.         lpMem = GlobalLock(hMem)
  38.         If lpMem Then
  39.             ' Copy the picture file bytes to the memory pointer
  40.             ' and unlock the handle.
  41.             MoveMemory ByVal lpMem, abPic(nLow), cbMem
  42.             Call GlobalUnlock(hMem)
  43.             ' Create an ISteam from the pictures bits (we can
  44.             ' explicitly free hMem below, but we'll have the
  45.             ' call do it here...)
  46.             If (CreateStreamOnHGlobal(hMem, CTrue, IStm) = S_OK) Then
  47.                 If (CLSIDFromString(StrPtr(sIID_IPicture), _
  48.                     IID_IPicture) = S_OK) Then
  49.                     ' Create an IPicture from the IStream (the docs
  50.                     ' say the call does not AddRef its last param, but
  51.                     'it looks like the reference counts are correct..)
  52.                     Call OleLoadPicture(ByVal ObjPtr(IStm), cbMem, CFalse, IID_IPicture, PictureFromBits)
  53.                 End If   ' CLSIDFromString
  54.             End If   ' CreateStreamOnHGlobal
  55.         End If   ' lpMem
  56.         Call GlobalFree(hMem)
  57.     End If   ' hMem
  58. Out:
  59. End Function


  60. 'With Form Inet1 Control
  61. 'Private Function GetPicFromHTTP(strURL As String, Optional Username As String, Optional Password As String) As IPicture
  62. '    Dim bytearray() As Byte
  63. '
  64. '    Inet1.URL = strURL
  65. '    Inet1.Username = Username
  66. '    Inet1.Password = Password
  67. '    bytearray() = Inet1.OpenURL(, icByteArray)
  68. '
  69. '    Set GetPicFromHTTP = PictureFromBits(bytearray)
  70. '
  71. 'End Function


  72. '
  73. 'Private Sub Command1_Click()
  74. '    Picture1.Picture = GetPicFromHTTP("http://msdn.microsoft.com/library/shared/toolbar/graphics/banners/MSDN_banner.gif";) '("http://www.wandtv.com/rdrimg.jpg";)
  75. 'End Sub


  76. Public Function LoadPictureFromField(f As ADODB.field) As StdPicture
  77.     Dim b1() As Byte
  78.    
  79.     If f.ActualSize <> 0 Then
  80.         ReDim b1(1 To f.ActualSize) As Byte
  81.         b1 = f.GetChunk(f.ActualSize)
  82.         Set LoadPictureFromField = PictureFromBits(b1)
  83.     End If
  84. End Function


  85. Public Function LoadPictureFromFile(filePath As String) As StdPicture
  86.     Dim b1() As Byte
  87.    
  88.     Open filePath For Binary As #1
  89.     ReDim b1(1 To LOF(1))
  90.     Get 1, , b1
  91.     Close 1
  92.    
  93.     Set LoadPictureFromFile = PictureFromBits(b1)
  94. End Function
復(fù)制代碼



點擊這里給我發(fā)消息

7#
 樓主| 發(fā)表于 2011-7-19 11:08:16 | 只看該作者
調(diào)用Public Function LoadPictureFromField(f As ADODB.field) As StdPicture函數(shù)從字段讀圖片到MSFORM20.Image控件。當(dāng)然,這個Field可以是SQL Server的Image字段,也可以是mdb的OLE字段,關(guān)鍵是這個字段存儲的圖片的內(nèi)容,而非OLE對象。
8#
發(fā)表于 2011-7-19 12:31:46 | 只看該作者
老師就是厲害!

點擊這里給我發(fā)消息

9#
發(fā)表于 2011-7-19 12:56:30 | 只看該作者
回復(fù) zhuyiwen 的帖子

朱總的代碼好呀,我也曾用了類似的方法。
其實jpg圖片數(shù)據(jù)也可用代碼轉(zhuǎn)換后,在ACCESS.image控件顯示。

點擊這里給我發(fā)消息

10#
 樓主| 發(fā)表于 2011-7-19 12:58:21 | 只看該作者
t小寶 發(fā)表于 2011-7-19 12:56


朱總的代碼好呀,我也曾用了類似的方法。其實jpg圖片數(shù)據(jù)也可用代碼轉(zhuǎn)換后,在ACCESS.image控件顯示。

能否共享一下?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 06:17 , Processed in 0.113226 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表