Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

数据库大小问题

luoqin  发表于:2010-11-06 14:52:54  
复制

我做一个管理系统,也就七八个窗体,四个表再加几个查询,还有每个窗体都加个背景图片,就达到了180MB,为什么会这么大,是因为背景图片的原因吗

 

Top
南方 发表于:2010-11-06 15:29:31
肯定是图片的原因!

wj.s 发表于:2010-11-06 15:34:45

如果你图片类型是选择"嵌入"的话,就是这个原因了,如果想减小数据库的体积,可以采用"链接"的方式.

至于解决链接的路径的问题(如果图片的位置变动了),可以参考一下我的自定义函数例程做处理.

1.新建一个模块,把以下代码录入

Public Function funcPicturePath(ByVal strFolderName As String, ByVal strFileName As String) As String

    ' 返回图片链接路径
    Dim strPicturePath As String
   
    ' ***  注意:本函数基于以下的图片路径命名规则:
    ' ***       数据库当前目录下\Image(文件夹)\根据图片功能命名的文件夹(文件夹)\带后缀名称的文件名称(文件)
    ' ***  使用示例:
    ' ***       Me.Logo.Picture=funcPicturePath("Logo","Logo_0.jpg") ' (图片路径:数据库当前目录下\Image\Logo\Logo_0.jpg)
    ' ***       Me.Logo.Picture=funcPicturePath("","Logo_0.jpg")     ' (图片路径:数据库当前目录下\Image\Logo_0.jpg)
   
    ' 定义字符变量strPicturePath为数据库当前目录下的Image文件夹
    If Len(strFolderName) > 0 Then
        strPicturePath = CurrentProject.Path & "\Image\" & strFolderName & "\" & strFileName
        Else
            strPicturePath = CurrentProject.Path & "\Image\" & strFileName
    End If
   
    funcPicturePath = strPicturePath
   
End Function

2.在窗体的Open或Load事件中录入以下代码:

' 基于当前窗体已经建立一个名称为"Logo"的图像控件,图片为"(无)",图片类型为"链接". 数据库当前目录下有一名称为"Image"文件夹,下有子文件"Logo",其中有图片"Logo_0.jpg".  

Me.Logo.Picture=funcPicturePath("Logo","Logo_0.jpg")

以上图片路径可根据自己需要修改下.



金爷 发表于:2010-11-06 16:07:28

表中有无 OLE 对象 ? 这个是主要问题

有没有压缩修复数据库? 制作的时候删除的表等等也会占用大小,制作完成后记得压缩一下

只有7,8个窗体有背景图片 不可能那么大



白桦林 发表于:2010-11-07 01:33:50

2楼给的答案感觉比较合理

我也是在窗体中用到了数张图片,不但文件变得比原来大了好多,启动时也慢了好多!!

所以我想问:

1、如果我的6个窗体内要用到6张图片

模块中的内容要不要改动?

如何改动?

 

2、在老窗体中新加入图像控件,会不会把窗体内原有的内容覆盖而看不到?

要是覆盖该怎么处理?



小陈 发表于:2010-11-07 09:59:37
完全同意3楼的意见,压缩下数据库。

wj.s 发表于:2010-11-08 12:30:57

回答4楼的问题:

1.模块中的内容不需变动(除非你存放图片的主文件夹路径有变动),但如果是不同的图片,调用函数时把图片的子文件夹名称及图片名称变动一下就OK了.例如:

  窗体1,中有图片2张,路径分别为:(1)数据库当前路径下/Image/Logo/Logo.jpg.(2)数据库当前路径下/Image/Menu/menu1.BMP

  则在窗体1的打开或加载事件中写上:

  Me.Logo.Picture=funcPicturePath("Logo","Logo.jpg")

  Me.Menu1.Picture=funcPicturePath("Menu","menu1.BMP")

  窗体2,中有图片2张,路径分别为:(1)数据库当前路径下/Image/Logo/Logo.jpg.(2)数据库当前路径下/Image/Menu/menu2.BMP

  Me.Logo.Picture=funcPicturePath("Logo","Logo.jpg")

  Me.Menu2.Picture=funcPicturePath("Menu","menu2.BMP")

2.新加入的图像控件,如果与其他控件有重叠的话,会覆盖重叠的控件的,可以在窗体设计视图中先选中该图像控件->菜单栏->格式->置于底层,

 



总记录:6篇  页次:1/1 9 1 :