vba 删除数据库

vba 删除数据库,第1张

因为你说的太笼统了,所以只能这样了

Sub ss()

'access

'Db = "d:\zcgl.mdb"

' connstr = "DBQ=" + Db + "DefaultDir=DRIVER={Microsoft Access Driver (*.mdb)}"

' Set conn = CreateObject("ADODB.Connection")

' conn.Open connstr

'删除sql对应的行

'conn.Execute "delete from grjbxx00 where 订单编号=" &Cells(1, 1) &"and 产品编号=" &Cells(2, 1)

'sql2000,你需要修改 数据库名,用户名,密码,数据表名

ConnectionString = "Driver={SQL Server}Server=(local)Datebase=dbefanUid=efanPwd=123456"

Set cnn = server.CreateObject("ADODB.Connection")

cnn.Open ConnectionString

'删除sql对应的行,grjbxx00要修改

cnn.Execute "delete from grjbxx00 where 订单编号=" &Cells(1, 1) &"and 产品编号=" &Cells(2, 1)

End Sub

可能是以下7个原因引起的,要分不同情况具体对待

1、Office(Access)的补丁更新造成的

最近office2016版本 2019版本的很多都出现这个问题了 ,是因为Office(Access)的补丁更新造成的。微软的Access有几次补丁出现过这个bug, 解决办法是一是退回之前稳定的版本,二是更新到最最新的版本

一般 使用帐户-更新选项-立即更新 一下即可

2、如果是Office2010 ,看是否网友xc555这种情况,可参考他的解决方法

先安装office 2010 sp2补丁,再卸载office 2010 sp2补丁 重启就成功了

PS:在网上找了N个解答,一直无法解决,看到一篇文章(说:sp2补丁会将vb编译器升至7.1,虽未解决)但受启发,尝试先安装sp2补丁,再卸载,结果就成功了

3、是因为中英文系统变化引起

中文系统做的程序到英文系统会出现这个问题,换系统 或 在英文系统重新设计相关窗体,而且模块使用可能遇到问题。或者在出现这个提示后选取消,再 *** 作几次,就不再出现,对有问题的功能重新设计 (千万不要点确定)

4、VBA环境或版本改变导致的

将C:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\VBA目录中的文件恢复至安装状态,出现这个问题的原因是VBA程序被修改,必须恢复未被修改的版本。 只要把旧版路径为vba\vba7.1下的vbe7.dll文件拷贝替换到新安装的vba\vba7.1下替换就可以了 (先备份)

5、可能是VBA真正损坏了

可先备份当前数据库,再使用Access的压缩修复功能修复一下

6、还有可能是不同的版本混合交叉打开导致的(不兼容)

网友出现过:我的计算机上安装了Access 2010,并对前端Access文件的复制版本进行了一些更新。我重命名了更新的副本以替换原始访问文件,并将旧文件放在备份文件夹中。我需要在第二天进行另一次更新,但使用的VPN连接使访问前端文件成为一种痛苦,所以我远程进入一个承载该文件的服务器,并使用该服务器的Access 2007应用程序进行更新。文件版本是2007-2010,因此我不认为它会导致任何错误更新。但是,我不知道为什么。

在进行这些更新时,我从未更新过任何vba,也没有收到除了sql函数错误以外的任何类型的错误。每次都成功保存并压缩和修复前端。然后我的最终用户开始接收宏和vba错误,这些错误阻止他们打开文件或输入任何信息。我发现vba模块已从文件中完全删除。此外,每次使用Access 2010在自己的计算机上打开文件时,原始备份的每个备份和副本都会损坏,即使我没有单击“确定”继续删除VBA模块。如果没有收到vba错误,我无法打开单个文件。用户通过在Intranet站点上下载自己的副本来访问前端文件,这样就不会损坏实际的文件。当我尝试这样做时,文件仍然被损坏,甚至损坏了原始文件。我的同事能够找到一个干净的备份,最终用户能够恢复工作,但我不能触摸文件,否则它也会损坏。即使我使用shift+open跳过开始代码,我仍然会收到错误。我的同事正在运行Access 2013,在打开备份文件副本时未收到任何这些错误。

试过:

紧凑型维修

反编译/重新编译

Access 2010版本为14.0.7224.5000(32位),因此已下载Office 2010 SP2

反编译不起作用,因为打开文件时我会立即收到vba错误(shift+open)。我没有新的访问更新要下载。我不能恢复到以前的版本,因为这不是我的公司可以接受的解决方案。我没有尝试将对象导入新的前端文件,因为每次打开文件时,都会删除或损坏VBA模块,因此无法导入或导出它们。我会失去所有的vba模块,因为我不是最初的开发人员,我不知道包括什么。我正在尝试更新2013年的访问权限,但这可能需要一段时间。

我读到的关于这个问题的所有信息都表明,当不同版本的access尝试打开同一个文件时,会发生这种情况,但是如果我使用access 2007和2010打开的文件的版本是2007-2010,为什么我仍然会得到这个错误?如果这是2007年的问题,为什么我在使用2010年的同时还要损坏在使用2007年软件之前制作的每个备份文件,特别是如果其他人在使用2010年、2013年和2016年的时候能够很好地访问该文件?

7、如果还不行,尝试将所有对象导入到一个新数据库文件

希望可帮到您!,也可关注我

发现Access2016最近几次更新导致一个较大的乌龙(大Bug), 这个Bug可能会导致网友误判,从而以为自己的数据库VBA工程损坏而不断修复或重新推倒重做数据库,浪费大量的时间。

这几天不少QQ用户也在群里不断咨询这个问题,发现有必要写一篇解决办法的教程:

最近Access2016经常打开一些Access数据库文件(mdb 或Accdb),会提示以下错误:

由于无法读取数据库中所含的VBA工程,因此无法打开此数据库。只有先删除VBA工程,然后才能打开数据库。删除VBA工程将同时从模块、窗体及报表中删除所有代码。在试图打开数据库并删除 VBA 工程前,应先对数据库进行备份。

若要创建一份备份副本,请单击"取消",然后备份数据库。若要在不创建备份副本的情况下打开数据库并删除 VBA 工程,请单击"确定"

而使用Access2013 ,Access2010 甚至 Access2003打开同一个文件则正常

这是由于Access2016最近更新乌龙导致的

可能出错的Access2016的版本

Microsoft Access 2016 MSO (16.0.8431.2046) 32位

只要最近的Access2016常会出现这个问题,是由于windows自动更新后导致access的vba编译器版本出现故障造成的问题,需要再从微软官方更新一下office补丁。微软现在对Access是越来越不上心了,且常常更新导致很多乌龙,前段时间Access2016已经出现过好几次bug了

使用帐户-更新选项-立即更新 一下即可

更新后打开同一个文件则完全正常了,不过更新后,版本号并没有变更,所未更新前版本号(小版本号)是一样的

还是 Microsoft Access 2016 MSO (16.0.8431.2046) 32位, 但VBA工程出错的问题解决了。

需要注意的事,这个更新过程时间会有点久,在更新过程中单击继续后,还需要等待一段时间,如果马上打开Excel word 或Access

会提示以下错误:

office 2016  应用程序无法正常启动(0cx0000022),请单击“确定”关闭应用程序

只须耐心再等待几分钟,再打开就正常了。

另一种可能就是在英文环境下打开中文制作的Access数据库也会出现这个故障

这是因为中英文系统变化引起,中文系统做的程序到英文系统会出现这个问题

解决办法.

1、换成对应的语言的系统及对应语言的Office,

2,在英文系统重新设计相关窗体,将表 查询 窗体 报表 模块中使用的各种变量 窗体节名 控件名全部改为英文即可

3、出现这个提示后选取消,再 *** 作几次,有可能不再出现,对有问题的功能重新设计

一般养成习惯,所有对象名(表名 查询名 窗体名 报表名 模块名 节名) 变量名 尽量使用英文。一般都可杜绝这类问题。

还有一种情况是 VBA代码的确损坏了。这种则要对Access数据库进行修复了。

也可参考这篇解决办法:网页链接


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9440056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存