access找不到输入表或者dual_在Access窗体中显示指定路径的图片

39bc636669ed52e2145a6535f979bc40.png

↑↑↑点击上方图片,了解详情

      在Access中,如果把图形对象以OLE格式的字段保存,那么在窗体中可以直接显示出图片来。但是这样做有以下不足:

      一、需要将图片逐一插入到表中,工作量太大。

      二、使数据库文件变得庞大。

      三、相同的图片文件,如果在不同数据库中都要引用,就需要重复插入,非常浪费。

      因此,可以把图片文件按照一定的路径储存起来,在窗体中通过这个路径找到相应的图片,并显示出来。这样可以大大节省操作时间、储存空间,而且便于图片文件在不同数据库中的共享。

      在网上查阅了大量的相关资料,看到的文章和范例大多是高手写的,可能忽略了像我辈这样的菜鸟级爱好者的水平。把他们提供的例子看了半天,总是不得要领。在反复尝试之后终于成功了。欣喜之余,除了感谢那些网上的资源以及提供者,还想把自己的一点经验写出来,希望对那些和我一样的业余爱好者有一点帮助。下面就以Access2003(本人依然不习惯07和10的界面,坚守着03,使用07和10的朋友可以尝试一下,原理应该是一样的)为例谈一谈如何实现在窗体中显示指定路径的图片。      比如我们要建立一个“古代语言学家”的数据库,希望在窗体中显示每个人的画像,可以分下面几个步骤实现:      一、建立一个叫做“古代语言学家”的文件夹,在这个文件夹中建立一个叫做“古代语言学家”的数据库,在数据中建立一个叫做linguist的表,表中包含ID(用作主键的编号)、linguist(语言学家的姓名)等字段。77647b3f1c2a901d6740a224649916fe.png      二、在文件夹“古代语言学家”中建立一个名为“头像”的文件夹,把所有的语言学家的头像储存在这个文件夹里,每个人的头像以姓名或ID为文件名(注意:最好以数据表中的“主键”作为文件名,这样可以保证不重复)。bc21a0bd53c2ef072bb8b7d43adfe9d3.png      三、建立一个窗体(可以利用窗体向导),窗体上要包含反映图片路径变量的字段,如本例中,头像是以姓名命名的,姓名是变量(每个语言学家的姓名不同),所以窗体上必须包含字段linguist。至于窗体上对象的隐现,可以通过改变对象属性中的“可见性”来控制。比如,如果头像是以ID命名的,在窗体上就必须包含ID这个字段,如果不希望ID在窗体上显示,可以把ID的可见性设为“否”。      四、在窗体中插入一个图形控件。可以先选择任意一个图片。072a247404caa262e34b989e08decc82.png      五、查看图形控件的属性,把图片删除(即图中选中的图片路径)。图片类型、缩放模式等可以根据需要设定。

d1afbdf7ca092cceecdc44b6bbbc4441.png

      六、在“视图”中打开“代码”编辑窗口,加入以下一段代码并保存:Private Sub Form_Current()Dim PhotoPath As StringPhotoPath = CurrentProject.Path & "\头像\" & Me![linguist] & ".jpg"Me.Image7.Picture = PhotoPathEnd 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。在窗体的设计视图中也可以对图形控件重新命名。      七、完成以上的操作,打开窗体就可以看到图片了。eafda91a3750b67a0a874e1401df1ea3.png      八、上面的代码没有定义当在给出的路径找不到相应的图片时的动作,因此,当找不到图片时会现错误提示。805add1da8db0099bbdeeba03257c60d.png      九、将代码稍做修改。如下: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一句定义了当在上一句定义的路径中找不到图片时,图片的路径为当前目录中的noimg.jpg。为保证其有效,需要在当前文件夹中有图片文件noimg.jpg。    下面是修改后的效果:66825887de5bb73add75cd19552afc77.png      大功告成了!      十、如果要在窗体中显示多个图片,只需声明多个相关的变量,定义相应的图片路径即可。比如:把古代语言学家的全身像放在文件夹“全像”中,同样以姓名命名。要在窗体中同时显示头像和全像,可以将代码修改为:  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      下面是修改后的效果:

95792615e0b76c3124354f9c9de1854f.png

End推荐阅读613f092f9d327ec505f918784bd00288.pngAccess训练营 从0基础开始,循序渐进,系统化的训练营课程,整合作业、课表、社群,为学员提供答疑,获得更佳的学习效果。【详情>>】3232c0a29f262e94dd67e6804061b976.png快速开发财务管理系统 紧密结合职场的一个课程,参加培训不仅可提升开发技能,而且可获得案例源代码,立即投入到实际工作中应用。【详情>>】3c4a8a880cf0d4cda3b051127773d320.pngAccess软件作品 十二位Access学员对自已开发的软件进行了介绍并分享开发心得,一起来了解Access开发的软件。【详情>>】69266cabd9dbacb237594a13f4ef5632.png从Excel到Access数据库 为广大Excel用户了解、学习Access数据库开设的一个实用课程,侧重于数据统计分析。【详情>>】7efa68dadb49f922582004dd51860cd1.pngAccess每天3分钟 视频课程共50集,Access的基础知识并结合示例详细讲解,每集视频只有短短几分钟,学员可以利用碎片化的时间,每天进步一点点【详情>>】425572d5d00915807e588fdafc773986.png张志,Access数据库培训讲师,『Access软件网』创始人,服务过的知名企业有北京奔驰、立达(中国)纺织仪器、宜家(中国)投资等。 2003~2013年连续10年获微软最有价值专家。【详情>>】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 168. Excel列表名称详解

刷到了这一道简单难度题 https://leetcode-cn.com/problems/excel-sheet-column-title/https://leetcode-cn.com/problems/excel-sheet-column-title/ 粗看就是一道进制转换题不过容易掉坑里。 首先略讲一下进制转换, 以701为例,该数字可以转换为以下…

可视化管理_RFID技术实施智能仓储管理可视化

仓储物流管理在各个行业都非常重要,RFID技术助力仓储物流信息管理提高供应链管理的透明度和库存周转率,这样有效减少缺货损失,提高企业内的仓储物流效率。仓库管理过程中,存在区域划分笼统,不容易辨识,货物…

(包含重力矢量)Pygame粒子模拟

半成品,目前速度不能修改,另外某些状况下路径会比较奇怪,因为没有速度计算,包含了重力矢量,可以修改重力方向 import pygame as pg import math import time import random import mathclass Particle(): #Tile is for…

小米蓝牙左右互联_解决不同品牌智能家居的兼容问题,小米米家智能多模网关发布...

如今智能家居种类可谓异常丰富,许多智能家居确实能让日常生活变得更加便捷。但是,相信许多智能家居爱好者都有一个烦恼,不同的品牌智能家居几乎不能实现交互,比如现在正使用Zigbee协议的智能家居,但新购置的智能家居却…

Pygame列表(链表)简单实现贪吃蛇

主要算法: 创建一个二维矩阵映射到屏幕上的像素,逻辑在该矩阵中实现 移动通过4个矢量完成,矢量储存在列表中按照 上右下左 的顺序排列(顺时针90度), 当前矢量以0-3的数字表达,这样进行加二除…

Pygame 整活五子棋

很早之前写了一个类似的五子棋,没有做到pygame里面,闲着没事给整过来了,主要就是加了一个鼠标映射坐标。 表情被锤会变脸。 设置的0积分不知道能不能下载 https://download.csdn.net/download/ChillingKangaroo/82109145 代码不多&#x…

读进程和写进程同步设计_浅谈unix进程进程间通信IPC原理

什么是进程进程间通信进程间通信即为不同进程之间通信,进程同步是进程间通信的一种unix进程间通信的分类有哪些System V进程间通信方式包含:System V消息队列System V信号量System V共享内存UNIX进程间通信方式包含:匿名管道命名管道信号POSI…

(Ipython)Matplotlib 中将二叉树可视化

(注意之前代码有错误目前已更新) 最近学习黑红二叉树,我想如果把二叉树可视化在操作的时候如果出错会比较容易发现。 在网上搜了一圈只有比较简单的ascii 的代码。 自己用Ipython写了一个,比较适合学生。 PS:算法没…

其中一个页签慢_VBA实战技巧15:创建索引页

学习Excel技术,关注微信公众号:excelperfect在工作簿中有许多工作表时,我们可以创建一个单独的工作表当作索引页,在其中创建到每个工作表的链接,就像目录一样,不仅方便查看工作簿中的工作表名称&#xff0c…

Python使用OpenCV 卷积核 实现康威生命游戏

"Mozart, Beethoven, and Chopin never died. They simply became music." 康威生命游戏规则十分简单,简化后如下: 一个“细胞”(或者说单元)分为生或死两种状态, 如果活相邻细胞有2或3个活细胞 该细胞活…

verilog赋多位值_verilog赋值

我现在要用且只能用八位的拨片开关对两个四位变量t1l,t1h赋值,且这两个变量t1l,t1h是要输出的,所以我编了一下程序,先通过拨片开关对输入变量d0,d1赋值,然后将d0,d1的值赋给t1l,t1...我现在要用且只能用八位的拨片开关对两个四位变…

Python/OpenCV 使用傅里叶变换与高斯平滑分析轮廓轨迹

该方法基本思想是通过分析高低频信息检测出轮廓碰伤、运动轨迹突变等信息,在工业上应用可能比较广泛, 对各种不规则形状都能分析,不过对高频信息多的复杂形状可能不好区分形状与噪音。 在这个例子中讲使用一个有鼓包的鸡蛋 import numpy as…

实现mvcc_一文读懂 etcd 的 mvcc 实现

提到事务必谈 ACID 特性, 基于悲观锁的实现会有读写冲突问题,性能很低,为了解决这个问题,主流数据库大多采用版本控制 mvcc[1] 技术,比如 oracle, mysql, postgresql 等等。读可以不加锁,只需要读历史版本即可 (写写还…

Pygame 粒子物理:Numba实现同时渲染十万+像素

图中同时渲染了十万个像素,没有明显掉帧 我对Pygame的印象一直是慢的扣脚的,直到前段时间看到了一段MandelBrot代码(源地址弄丢了)其中使用了这个功能:pygame.surfarray.make_surface() 这里可以直接把numpy阵列转换为pygame.su…

“vector”: 不是“std”的成员_libcxx 的 std::function 源码分析

链接&#xff1a;functional。其中 std::function 的主体内容在 2100 多行。先来看 function 的头部。template<class _Rp, class ..._ArgTypes> class _LIBCPP_TEMPLATE_VIS function<_Rp(_ArgTypes...)>: public __function::__maybe_derive_from_unary_function…

python验证身份证号码大全_身份证号码处理技巧大全

身份证号码处理技巧大全&#xff0c;汇总了常用的身份证号码处理六大技巧&#xff1a;不需要复杂的公式&#xff0c;点点鼠标即可完成&#xff0c;简单快捷&#xff0c;下面将详细介绍六大功能的具体用法。(文章最后有工具和演示文件的下载地址&#xff0c;可以下载下来同步操作…

语言print如何实现连续输出_【每日一题】如何实现一个高效的单向链表逆序输出?...

今后&#xff0c;动力节点Java学院将每天为大家带来一道大厂面试真题&#xff0c;这些面试题都是大厂技术专家们结合多年的工作、面试经验总结提炼而成的面试真题。通过这些面试题&#xff0c;还可以间接地了解技术大牛们出题思路与考察要点。建议大家收藏并分享给更多需要的人…

恩尼格玛模拟器_用C语言编的恩格尼码模拟器

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼void enumio(char pie1[],char pie2[],char pie3[],char pier[],char ch0[],char chz[],char ip[],char k[],int cou){ int check(char *a);int excheck(char *a);int compare(char *le,char *unle);int factorial(int n);void cyc…

louvain算法python_复杂网络任务6:Louvain社区发现算法的原理、细节和实现,作业,六,以及...

ΔQ[∑in2∗mki,in2∗m−(∑tot2∗m)2−(2∗∑tot∗ki4∗m2)−(ki2∗m)2]−[∑in2∗m−(∑tot2∗m)2−(ki2∗m)2]ki,in2∗m−2∗∑tot∗ki4∗m212∗m∗(ki,in−∑tot∗kim)\Delta{Q} [\frac{\sum_{in}} {2*m} \frac{k_{i,in}}{2*m} - (\frac{\sum_{tot}}{2*m})^2 - (\frac{2*…

系统相机裁剪比例_从单反到手机,三种黄金比例构图方法,让你的照片与众不同...

古埃及金字塔和达芬奇蒙娜丽莎有什么共同之处&#xff1f;它们都是使用黄金比例进行设计的。不管是建筑设计还是绘画&#xff0c;它们都是属于艺术的一种&#xff0c;所以黄金比例也同样适用于摄影构图中。很多优秀的摄影作品都会使用黄金比例的构图方法进行拍摄&#xff0c;因…