这两天都在折腾在access的窗体中显示图片的问题,主要是网上找到的教程都写的太简略了,很多细节上的地方都没有提到,对于我这种没有系统学过access,只是想学一部分内容,满足自己需要的人来说,不迭于噩梦。 现在把这两天的经验下来了,方便自己,方便别人。 首先,要在窗体和报表中显示图片,有几种方法 1.利用ole控件插入数据库中 2.利用vba代码,以二进制形式把图片存入数据库中 3.在表中设立一个文本字段,把图片的路径存到表中。 而3.有两种情况,只是保存文件名的,保存相对路径的,保存{jd1}路径的。 网上你最容易就是找到保存为相对路径的教程。 详细情况请到这个网站,搜索“图片”。 http://access911.net/index.asp 你会找到《数据库与图片或者文件的关系如何处理?》这篇文章。 我使用的是修改前的方法,并且用的是{jd1}路径。我现在来讲讲我的具体情况。 VBA代码其实很简单,没有学过的朋友,你要注意的地方是,这段代码要放在哪里。 你应该把代码放到“窗体”中去,见图,我用的是access2007。 这是我的代码的写法。定义一个“picurl”函数来获取路径,“图片.value”就是叫做“图片”的文本框的值,也就是我们的路径,后面会讲到。然后“Me.poster.picture”后面要放的就是图片的路径。你或者可以把“picurl”合到“Me.poster.picture”后面去,但是我没试过就是了。 这里解释一下“Me.poster.picture”。“Me”和“picture”请照写,因为这个我也不懂。“poster”是你图片控件的名字。关于建立图片控件,请看图。 好了,现在是最关键的部分,建立一个文本框后(我的文本框叫“图片”),怎样使这个文本框获得路径。 在“控件来源”中,输入“=[XXX]”这样的表达式是无效的,请注意。 正确的做法是,选择“窗体”,然后在“记录源”中选择你存放路径的表或者查询,然后返回到文本框的属性中,就能够利用下拉列表选择到你存放路径的字段了。 本来是相当简单的问题,但是对于入门者而言,一步一步详细地讲是{jd1}有必要的。现在,我从头把步骤写一遍,利己利人。 例子:我有一个表,记录了10部动画,每部动画都有一个字段记录对应的预览图地址。 目的:建立一个窗体,里面可以根据不同动画显示预览图。 方法:利用查询筛选动画,然后利用文本框取得地址,利用图像控件显示。 步骤 1.已经建立了一个表,里面有一个字段贮存图片地址。这里假设这个字段为“url” 2.建立一个窗体(窗体A),然后插入图像控件和一个组合框,组合框链接到表的“动画名称”字段。组合框命名为名画名称列表,方便引用。 3.建立一个查询,以窗体A中的“动画名称列表”为条件。条件表达式可以用“生成器”来生成。命名为“获取地址” 4.返回窗体A,插入一个按钮,选择“杂项”→“运行查询”,选择“获取地址”这个查询。 5.现在,在窗体视图中,选择好动画名称后,点击按钮,就会运行查询了。 6.插入一个文本框,命名为“图片”,具体做法见上面。 7.在“窗体”中插入VBA代码,保存。 8.大功告成。 9.注意,如果url为空,是会报错的,我会把所有路径都补全,没有图片的就先做一张提示图片。你可以写更完善一点的代码来避免报错。 {zh1}的结果,因为是测试,所以图片是错的。 |