问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb数据库实训总结

发布网友 发布时间:2022-04-26 17:57

我来回答

1个回答

热心网友 时间:2022-05-02 15:08

在VB中压缩ACCESS数据库

如果您在Access数据库、Access项目中删除数据或对象,可能会产生碎片并导致磁盘空间使用效率的降低。同时,数据库文件的大小并未减小,而是不断的增大,直至您的硬盘没有空间。有没有好的处理方法呢?其实,在Access中可以对数据库进行压缩优化以提升Access数据库和Access项目的性能,这样的压缩处理的实质是复制该文件,并重新组织文件在磁盘上的存储方式。但是,在Access项目中进行这样的压缩不会影响到数据库对象(例如表或视图),因为它们是存储在Microsoft SQL Server数据库中而不是在Access项目本身中。同样,这样的压缩也不会影响到Access项目中的自动编号。在Access数据库中,如果已经从表的末尾删除了记录,压缩该数据库是就会重新设置自动编号值。添加的下一个记录的自动编号值将会比表中没有删除的最后记录的自动编号值大一。

下面介绍如何在VB中用一个CompactJetDatabase过程实现对Access数据库文件的压缩处理,在这个过程中有一个可选参数,就是在压缩前你是否需要把原有的数据库文件备份到临时目录(True或False)。我用此办法使21.6MB的数据库压缩到仅仅300KB。

‘这些代码可放在模块中,在其他窗体也使用

Public Declare Function GetTempPath Lib "kernel32" Alias _

"GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Public Const MAX_PATH = 260

Public Sub CompactJetDatabase(Location As String, Optional BackupOriginal As Boolean = True)

On Error GoTo CompactErr

Dim strBackupFile As String

Dim strTempFile As String

‘检查数据库文件是否存在

If Len(Dir(Location)) Then

‘如果需要备份就执行备份

If BackupOriginal = True Then

strBackupFile = GetTemporaryPath & "backup.mdb"

If Len(Dir(strBackupFile)) Then Kill strBackupFile

FileCopy Location, strBackupFile

End If

‘创建临时文件名

strTempFile = GetTemporaryPath & "temp.mdb"

If Len(Dir(strTempFile)) Then Kill strTempFile

‘通过DBEngine压缩数据库文件

DBEngine.CompactDatabase Location, strTempFile

‘删除原来的数据库文件

Kill Location

‘拷贝刚刚压缩过临时数据库文件至原来位置

FileCopy strTempFile, Location

‘删除临时文件

Kill strTempFile

Else

End If

CompactErr:

Exit Sub

End Sub

Public Function GetTemporaryPath()

Dim strFolder As String

Dim lngResult As Long

strFolder = String(MAX_PATH, 0)

lngResult = GetTempPath(MAX_PATH, strFolder)

If lngResult <> 0 Then

GetTemporaryPath = Left(strFolder, InStr(strFolder, Chr(0)) - 1)

Else

GetTemporaryPath = ""

End If

End Function

以后您在使用Access数据库时可以尝试进行这样的压缩,您应该会发现我说的没有错。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
whether...ornot必须搭配着用么? whether必须跟or not吗 z97主板与b85有什么区别? b85主板和z97的区别有哪些 z97和b85有什么区别? shuxpai锁了屏怎么办? AI软件在保存文件时,出现"0x01d93ff0"指令引用的“0x00000000”内存。该... AI文件保存时保存不了。无法以此文件名存储。请以其它名称或在其它文... 上海买衣服最实惠的地方再哪 在上海买衣服去哪好呢? 急求SQL数据库的实训总结,以及在实训中碰到的问题和体会 表格图表怎么做 今天女儿一直说*疼痛、一看里面竟然有两条白色的虫子、*程血丝红色、似有糜烂的样子、现在晚上不方 生殖器周围的毛里有小虫子有时候很痒这是怎么回事啊!我每天都有洗澡的! 我阴部汗毛里有虫子好像是阴虱怎么办抓到了两个 阴部搔痒清洗时看到了类似阴虱的虫子 女人发觉阴部会痒还有鯴子一样的虫子该怎么办啊 下身腋毛长虫怎么治 阴部有虫子是不是就是阴虱 ps怎么去除qq上涂鸦的图片,就象这样,怎么才能看到下面的文字? 可以清除涂鸦,看到涂鸦下的文字吗 可以去除图片上的涂鸦吗?涂鸦下面的字还可以看见的 别人发的微信截图故意把几个字涂鸦了,怎样才能去掉图鸦看文字? 如何把涂鸦去掉看到原来的字? 怎么去除涂鸦部分,不能破坏后面文字? 龙岩旅游攻略 梁野山离于都多远 从梁野山到汉仙岩有多少公里? 有谁知道福建武平梁野山要不要门票啊???还有现在10月下旬去的话,水会不会很少啊??听说那里瀑布很漂 抖音直播间可以频繁改库存吗 SQL Server数据库实训内容 数据库实训报告 数据库实验 设计1个SQL小实验,帮忙给点思路 怎样做一个数据库实验 数据库实验——创建和修改数据库 SQL期末考试数据库实训相关问题? 被对方好友拉黑怎样恢复? 被对方好友拉黑怎样恢复 怎么恢复被拉黑的微信好友? 9800GT独立显卡多少钱 英伟达9800gt显卡多少钱 9800GT显卡 现在多少钱啊? nvidia geforce 9800gt 价格是多少? 9800gt显卡多少钱 现在一块9800GT显卡要多少钱啊 Nvidia GeForce9800GT大概要多少钱? 被小额贷款骗了报警有用吗 NVIDIA GeForce 9800GT 显卡的显存? 贷款不还金融机构可不可以报警?