Access窗体中显示指定路径的图片

609次阅读
没有评论

共计 2406 个字符,预计需要花费 7 分钟才能阅读完成。

在 Access 中,如果把图形对象以 OLE 格式的字段保存,那么在窗体中可以直接显示出图片来。但是这样做有以下不足:一、需要将图片逐一插入到表中,工作量太大。二、使数据库文件变得庞大。三、相同的图片文件,如果在不同数据库中都要引用,就需要重复插入,非常浪费。因此,可以把图片文件按照一定的路径储存起来,在窗体中通过这个路径找到相应的图片,并显示出来。这样可以大大节省操作时间、储存空间,而且便于图片文件在不同数据库中的共享。

下面就以 Access2003,使用 07 和 10 的朋友可以尝试一下,原理应该是一样的)为例谈一谈如何实现在窗体中显示给定路径的图片。

比如我们要建立一个“古代语言学家”的数据库,希望在窗体中显示每个人的画像,可以分下面几个步骤实现。

一、建立一个叫做“古代语言学家”的文件夹,在这个文件夹中建立一个叫做“古代语言学家”的数据库,在数据中建立一叫做 linguist 的表,表中包含 ID(用作主键的编号)、linguist(语言学家的姓名)等字段。

Access 窗体中显示指定路径的图片

二、在文件夹“古代语言学家”中建立一个名为“头像”的文件夹,把所有的语言学家的头像储存在这个文件夹里,每个人的头像以姓名或 ID 为文件名(注意:最好以数据表中的“主键”作为文件名,这样可以保证不重复)。

Access 窗体中显示指定路径的图片

三、建立一个窗体(可以利用窗体向导),窗体上要包含反映图片路径变量的字段,如本例中,头像是以姓名命名的,姓名是变量(每个语言学家的姓名不同),所以窗体上必须包含字段 linguist。至于窗体上对象的隐现,可以通过改变对象属性中的“可见性”来控制。比如,如果头像是以 ID 命名的,在窗体上就必须包含 ID 这个字段,如果不希望 ID 在窗体上显示,可以把 ID 的可见性设为“否”。

四、在窗体中插入一个图形控件。可以先选择任意一个图片。

Access 窗体中显示指定路径的图片

五、查看图形控件的属性,把图片删除(即图中选中的图片路径)。图片类型、缩放模式等可以根据需要设定。Access 窗体中显示指定路径的图片

六、在“视图”中打开“代码”编辑窗口,加入以下一段代码并保存:

Private Sub Form_Current()

Dim PhotoPath As String

PhotoPath = CurrentProject.Path & "\ 头像 \" & Me![linguist] & ".jpg"

Me.Image7.Picture = PhotoPath

End Sub

关于这段代码的几点说明:

1、Dim 语句是一个声明变量的语句,String 代表字符串。上面的 Dim 语句表示声明 PhotoPath 为一个字符串。其中 PhotoPath 是变量名,可以自己命名。

2、PhotoPath = 一句定义了图片的路径。CurrentProject.Path 是当前对象的路径,是个相对路径。& 是连接符,也可以用,表示把前后的字符连接起来。Me 表示当前的窗体,Me![linguist] 则表示当前窗体中的 linguist 字段。把这段语句所代表的路径转换出来即:.\ 头像 \ Me![linguist].jpg;也就是:当前路径下(与数据库文件同目录下),“头像”文件夹中,文件名等于窗体中 linguist 字段的值的 jpg 文件。再复杂的路径,只要是有规则的,都可以用这个方法定义。注意:所有的值都需要用半角的双引号 " 括起来;表示文件夹的前后的斜杠 \ 和后缀名以及前面的. 不要丢掉。

3、Me.Image7.Picture = PhotoPath 一句定义了窗体中的图形控件来源等于上一句定义的路径。注意:Image7 是图形控件名,要与窗体中的控件名一致,本例中是 Image7。在窗体的设计视图中也可以对图形控件重新命名。

七、完成以上的操作,打开窗体就可以看到图片了。

Access 窗体中显示指定路径的图片

八、上面的代码没有定义当在给出的路径找不到相应的图片时的动作,因此,当找不到图片时会现错误提示。

Access 窗体中显示指定路径的图片

九、将代码稍做修改。如下:

Private Sub Form_Current()

Dim PhotoPath As String

PhotoPath = CurrentProject.Path & "\ 头像 \" & Me![linguist] & ".jpg"

If Dir(PhotoPath) = ""Then PhotoPath = CurrentProject.Path &"\noimg.jpg"

Me.Image7.Picture = PhotoPath

End Sub

说明:If 一句定义了当在上一句定义的路径中找不到图片时,图片的路径为当前目录中的 noimg.jpg。为保证其有效,需要在当前文件夹中有图片文件 noimg.jpg。

下面是修改后的效果:

Access 窗体中显示指定路径的图片

大功告成了!

   十、如果要在窗体中显示多个图片,只需声明多个相关的变量,定义相应的图片路径即可。比如:把古代语言学家的全身像放在文件夹“全像”中,同样以姓名命名。要在窗体中同时显示头像和全像,可以将代码修改为:

  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

   下面是修改后的效果:

Access 窗体中显示指定路径的图片

 

 

 

 

原文:http://blog.sina.com.cn/s/blog_7238e3210100ydnm.html

正文完
 0
水东柳
版权声明:本站原创文章,由 水东柳 2018-10-09发表,共计2406字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)