mdb占内存过大

cs_lx_sc 2008-07-21 04:25:41
每次点按钮执行DoCmd.RunSQL "select iif(isnull(a.CAI),b.CAI,a.CAI) as CAI,Zone,[Sub zone],Country,MOIS,PAYSVENT,CM,TM,REGMRQ,MARQUE_CODE,CATCOM,CLIENT,TER,VENTES,[Nation Code],[Market Code],[Product Code],Month0,Month1,Month2,Month3,Month4,Month5,Month6,Month7,Month8,Month9,Month10,Month11,Month12,Month13,Month14,Month15,Month16,Month17,Month18,MARQUE,SCULPTURE,DIM,FAMLIGP,[MACRO 6],[MACRO 7],[MICRO 11],DIASEAT,CHARGE1,CHARGE2,SYMBVIT,MARKET,FACTORY,LC,[Disc RT] into [query_temp2] from (select * from [query_temp1] a left join [Commercial Catalogue] b on a.CAI=b.CAI union select * from [query_temp1] a right join [Commercial Catalogue] b on a.CAI=b.CAI)"

这句话生成一张表以后,我发现我的mdb就会变大几十M,只有关闭mdb后才会回到以前的大小,有没有释放内存的命令来控制mdb大小呢?
...全文
256 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cs_lx_sc 的回复:]
引用 7 楼 cs_lx_sc 的回复:
自己顶。。。。


我试了下怎么是从新打开mdb的效果呢。。。。

我想要对日益变大的mdb减肥的效果,麻烦帮帮我呵呵
[/Quote]
CommandBars("Tools").Controls(7).Controls(2).accDoDefaultAction
看看MDB的大小
2、在启动窗口中将所有菜单的勾去掉看看结果
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cs_lx_sc 的回复:]
恩,我试试

那顺便问一下1:如何在代码里设置“tools”-“options”-“Edit/Find”-“confirm”里去掉三个勾呢?
2:如何去掉整个access的编辑菜单呢?(File,Edit之类的都不要)

十分感谢!
[/Quote]

我在启动窗体中设置后,"File,Edit..."之类的还在,有没有办法去掉这些呢?
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cs_lx_sc 的回复:]
自己顶。。。。
[/Quote]

我试了下怎么是从新打开mdb的效果呢。。。。

我想要对日益变大的mdb减肥的效果,麻烦帮帮我呵呵
wwwwb 2008-07-28
  • 打赏
  • 举报
回复
1
SetOption "确认记录更改", FALSE(TRUE)
确认文档删除
确认操作查询
2
在启动窗体中设置
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
恩,我试试

那顺便问一下1:如何在代码里设置“tools”-“options”-“Edit/Find”-“confirm”里去掉三个勾呢?
2:如何去掉整个access的编辑菜单呢?(File,Edit之类的都不要)

十分感谢!
wwwwb 2008-07-28
  • 打赏
  • 举报
回复
try:
CommandBars("Tools").Controls(7).Controls(2).accDoDefaultAction
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
自己顶。。。。
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
好的,明白了,非常感谢!
WWWWA 2008-07-28
  • 打赏
  • 举报
回复
运行时要产生一些临时表,虽然删除,但空间没有释放,要压缩才释放。
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
是不是我在代码里建临时表的缘故导致mdb越来越大,但我最后都删了,有没有在代码方面避免的办法呢??还是所有的access建表后即便删了也存在mdb变大的现象?
WWWWA 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 cs_lx_sc 的回复:]
是这样的:有没有说是自动压缩的操作,没有任何界面的变动,而不是关了mdb再打开。。那个按钮是做查询操作的,我不想让点了查询后mdb关闭再打开,比较麻烦。。。 谢谢
[/Quote]
除非
你用其它语言连接MDB,再压缩
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
是这样的:有没有说是自动压缩的操作,没有任何界面的变动,而不是关了mdb再打开。。那个按钮是做查询操作的,我不想让点了查询后mdb关闭再打开,比较麻烦。。。 谢谢
WWWWA 2008-07-28
  • 打赏
  • 举报
回复
1、你在启动窗口中设置自动运行某个窗体就行了
WWWWA 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cs_lx_sc 的回复:]
谢谢耐心指导。

1。每次点“查询”后mdb的容量会变大,CommandBars方法会让mdb从启,我想要的效果是自动压缩,每次点“查询”后都压缩,而且这个CommandBars方法从启mdb后会自动打开vba编辑器。。。

2。所有的都去掉也还会有(File,Edit之类的)
[/Quote]
1、压缩MDB,用代码可以重新生成新的MDB,用CommandBars会重新启动MDB,你在菜单中运行是一样的,除非
你用其它语言连接MDB,再压缩;
2、我测试过,有的都去掉,只有文件、窗口、帮助三个菜单。
cs_lx_sc 2008-07-28
  • 打赏
  • 举报
回复
谢谢耐心指导。

1。每次点“查询”后mdb的容量会变大,CommandBars方法会让mdb从启,我想要的效果是自动压缩,每次点“查询”后都压缩,而且这个CommandBars方法从启mdb后会自动打开vba编辑器。。。

2。所有的都去掉也还会有(File,Edit之类的)
cs_lx_sc 2008-07-25
  • 打赏
  • 举报
回复
我看那些代码:

在Project--References中加入 Microsoft Jet and Replication Objects X.X library,其中 ( X.X 大于或等于 2.1 )。

Private Sub Command1_Click()
Dim sjro As jro.JetEngine
Set sjro = New jro.JetEngine
'來源文件
sjro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Test2.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abbc2.mdb;Jet OLEDB:Engine Type=4" '目的文件

End Sub

有什么来源和目的文件,我就要对我这个文件进行压缩,而且是在某个操作下进行,不可能说是再生成一个文件
WWWWA 2008-07-24
  • 打赏
  • 举报
回复
MDB在运行时生成临时表,结束时没有释放空间,用代码压缩和修复数据库,
OR
直接运行工具中的此项
cs_lx_sc 2008-07-24
  • 打赏
  • 举报
回复
还有这个问题。。。
cs_lx_sc 2008-07-23
  • 打赏
  • 举报
回复
主要是生成的这个表有10000多条记录,所以导致mdb越来越大,我这个表我是要用的,有什么办法解决么?
cs_lx_sc 2008-07-22
  • 打赏
  • 举报
回复
我试了这样不行,不是删除表的问题,只有关了程序它才变小,这是怎么回事?请高人指点啊
加载更多回复(1)

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧