天道酬勤,学无止境

How do I use an Access 2003 mde with Access 2007 and keep my custom menus/toolbars?

Please describe the exact steps required to use a compiled Access 2003 mdb with the Access 2007 runtime and retain my custom menus and toolbars so that they look the same as they did with the 2003 runtime. I've tried following the various incomplete instructions around the web, but I either end up with my menus/toolbars on the ribbon's ugly looking Add-ins tab, or they fail to appear altogether.

评论

See Jeff Conrad's page How do I get my existing legacy menu bars and toolbars to work in Access 2007? Right now they all show up on the Add-Ins tab.

BTW the probably two best sites on converting to Access 2007 are http://allenbrowne.com/Access2007.html and http://accessjunkie.com/faq2007.aspx

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • MS Access:没有足够的内存来执行此操作(MS Access: There isn't enough memory to perform this operation)
    问题 我在具有 4GB RAM、运行 Windows XP (Service Pack 3) [5.1.2600] 的双核机器上使用 Access 2003 我会定期收到错误消息“没有足够的内存来执行此操作。关闭不需要的程序并重试该操作。” 检查任务管理器表明有足够的可用内存。 关闭其他打开的程序没有任何区别。 这种情况偶尔会发生,并且在不同的情况下发生:有时在保存表单设计或 VBA 代码更改时,有时在打开并使用多个表单时。 如果尝试保存设计更改并发生此错误,则 Access 对象已损坏且无法恢复。 关于可能导致这种情况的任何建议将非常受欢迎。 MTIA 回答1 您前端的 VBA 项目可能已损坏。 您需要从头开始重建它,然后使用正确的 Access 编码实践: 在 VBE 选项中,关闭 COMPILE ON DEMAND(有关原因的详细信息,请参阅 Michael Kaplan 关于 DECOMPILE 的文章)。 在 VBE 选项中,打开 REQUIRE VARIABLE DECLARATION。 在 VBE 中,自定义您的工具栏,以便可以轻松访问“编译”按钮(位于“调试”菜单上)。 我还建议添加 CALL STACK 按钮(来自 VIEW 菜单),因为它对于在中断模式下调试错误非常方便。 这里的重点是使调试和编译尽可能容易。 设置好环境后,检查新恢复项目中的所有模块,并将
  • 创建前端MDE(Creating the Front End MDE)
    问题 我创建了一个用于跟踪指标的数据库,其中包含一些自动化技巧(电子邮件,.doc,.ppt演示文稿等),以及一个非常大的Main-table和许多表格/ GUI。 这是我第一次担心这种事情的MDE /前端。 因此,如果您愿意回答几个问题或提出任何建议,将不胜感激(我讨厌所有这些工作都不会被利用)。 我需要做的第一件事是什么? 它必须转换为03才能创建MDE的2000版本,但是在使用数据库拆分器之前完成了吗? 数据库中的对象数量会影响执行此操作的能力吗? 我有80多个表单,70个查询,20个以上的宏,12个表等...但是一旦前端出现,对象的数量是否会阻止其中某些对象正常工作? 当我拆分数据库时,我可以继续在“后端”上进行工作/进行更改等操作,这些更改是否直接影响到前端? 这些可能是一些基本问题,但我不知道答案,所以.....谢谢! 回答1 这是我的2美分。 问题1-我从未使用过数据库拆分器,因为我感觉可以手动控制它。 如果您手动执行此操作,则可以将其执行到没有数据库拆分器的版本。 但是,如果您确实使用了分割器,那么-是的-您必须先升级到具有分割器的版本,然后再进行操作。 要手动完成,请按以下步骤进行。 备份所有内容。 在同一目录中创建文件的副本。 因此,如果您拥有MyApp.MDB,请使用新名称(例如MyAppDATA.mdb)在同一目录中创建一个副本。 打开新的DATA文件
  • 如何锁定设计视图?(How to lock Design View?)
    问题 如何在Microsoft Access数据库中锁定窗体等的设计视图,以使授予我该权限的人无法编辑项目? 回答1 您可以通过以下方式锁定访问表单:“设计视图”不再可见,并且“数据表视图”等也不再可见。 锁定您的数据库还有一个好处,那就是它可以撬开眼睛来编译(例如加密)任何VBA ...有用! 首先,您需要确定是只锁定设计视图还是所有其他视图。 如果你想只锁定设计视图,然后跳到正前方至第6步。 如果您的项目与早期版本的Access不向后兼容,则对MDB文件的任何引用都将显示为ACCDB文件。 对MDE文件的任何引用都将显示为ACCDE。 1.如果您的项目另存为与Access 97/2000兼容,则必须首先将其转换为2002格式。 您可以通过以下方法来执行此操作:转至Orb>另存为> Access 2002-2003数据库: 2.打开任何表格 3.打开设计视图 4.从打开的默认选项卡(“表单设计工具”>“设计”)中,选择“属性表”: 5.在“属性表”中,将要锁定的视图更改为“否”: 6.最后,要创建锁定的数据库文件,请选择“数据库工具”>“制作MDE”: 7.系统将询问您要将新的MDE文件保存到的位置。 您的旧MDB文件将被保留。 重要提示:保留旧的MDB文件!! 如果您需要对项目进行任何更改,则只能在原始MDB文件中执行此操作。
  • 如何在Access 2007中实现用户级安全性(How to implement user-level security in Access 2007)
    问题 因此,经过一番挖掘,我意识到Access 2007没有内置的用户级安全选项。我需要做的是限制用户可以根据登录者进行编辑的记录(他们可以查看所有数据,但只能编辑自己的数据) )。 我当时以为我可以登录表格并分配密码然后从那里去,但是我想知道是否有更好的方法可以做到这一点。 回答1 为了对数据库中的表单具有只读,读写权限,我们实现了以下表格和逻辑。 我创建了一个特权表以及登录表。 数据库中的每个屏幕将对每个用户具有只读或读写特权。 我将所有屏幕名称插入到特权表中。 另一个表UserPrivilege将具有用户及其特权。 给用户分配权限只能由管理员用户完成。 每个表单开始时的功能都会检查是否允许指定用户查看或编辑表单。 如果他/她被设置为只读,我们将锁定所有在该窗体上循环的控件。 否则,无事可做。 或在设计时将所有控件保持只读状态,并通过代码解锁它们以获取写权限。 交付最终用户的版本时,数据库窗口保持隐藏状态。 这样可以防止对数据库中的表进行常规,简单的查看,在数据库窗口中打开表格,报告对象。 在执行mde / accde之后,可以进行一些其他调整,以使用户不容易直接查看表。 绕过启动,特殊键等 回答2 我也一直面临这个问题。 我的解决方案(尚未解决)是完全做到这一点。 用密码和登录表创建用户表,该表读取用户名,密码和用户类型的表。 我从那里开始使用了两种方法:
  • 显示没有默认Access框架的Access GUI(Displaying an Access GUI without the default Access frame)
    问题 有没有一种方法可以告诉访问者仅显示表单/报告,而不显示访问窗口本身(访问表单在其中填充的“外壳”窗口)。 回答1 为此,我利用了一些聪明人编写的一段代码,这些代码可以在网上找到(我想它最初是由Terry Kreft编写的?),并且引用了一些Windows API。 我首先有这个: Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 然后 Function fSetAccessWindow(nCmdShow As Long) 'Usage Examples 'Maximize window: ' ?fSetAccessWindow(SW_SHOWMAXIMIZED) 'Minimize window: ' ?fSetAccessWindow(SW_SHOWMINIMIZED) 'Hide window: ' ?fSetAccessWindow(SW
  • 如何在运行时访问VB创建控件?(How to create controls at run time Access VB?)
    问题 如何在运行时使用Microsoft Access中的VB代码创建控件? 经过一番挖掘后,我发现使用CreateControl函数可以做到这一点。 问题是我在网上找到的每个随机论坛都有一些类似于以下的代码: Private Sub Button_Click() Call AddLabel End Sub Function AddLabel() Set ctl = CreateControl("MyForm", acLabel, acDetail, "", "", 0, 0, 100, 100) With ctl .name = "myTextBox" .Caption = "Hello World!" .Height = 50 .Width = 100 .FontSize = 11 .Visible = True End With End Function 但是此代码似乎无法创建可见标签。 就我而言,我只是想学习如何使它起作用。 因此,我创建了一个带有按钮的空白表单,单击该按钮将创建一个标签,上面写着“ Hello world!”。 我希望发生的是,单击按钮时,文本框将显示在表单的左上方。 我很好奇是否有人可以帮助我向我展示一些实际有效代码的简单示例。 我知道,在任何人说我可以创建标签并将其隐藏然后更改其可见性之前,我都知道。 但是我想知道如何动态创建控件
  • Access 2013-无法打开使用先前版本的应用程序创建的数据库(Access 2013 - Cannot open a database created with a previous version of your application)
    问题 我有一个Access数据库已创建了10多年了。 我的数据非常重要,我认为可以在Access 2007或更早版本中打开它。 当前,我的桌面上有Access 2013,使用此版本打开文件会导致错误“无法打开使用您的应用程序的先前版本创建的数据库” 这个问题有什么解决方案? 在哪里可以下载早期版本的MS Access? 回答1 我刚刚使用Excel 2016打开Access 2003表。 打开一个新的工作表转到数据标签点击“来自访问权限”菜单项选择数据库的.mdb文件在打开的“数据链接属性”框中,切换到“提供程序”选项卡选择“ Microsoft Jet 4.0 OLE DB提供程序” 点击下一步重新选择数据库的.mdb文件(更改Provider时会忘记该文件) 点击确定在出现的“选择表”对话框中,选择要导入的表。 回答2 如另一个答案中所述,Microsoft的正式用语是在Access 2003中打开Access 97文件并将其升级为更新的文件格式。 不幸的是,从现在开始,许多人将很难获得Access 2003的合法副本(或Access 2013之前的任何其他版本,或者碰巧是最新版本)。 在这种情况下,可能的解决方法是 安装32位版本的SQL Server Express Edition,然后使SQL Server导入实用程序使用Jet * ODBC将表导入到SQL
  • Use Reg Query whilst Registry Editing Tools Disabled in GPO? MS Office Version Lookup
    Good day all, So I wrote a simple .bat file I was going to call on user startup to get the MS Office versions. Tested fine for admins but unfortuatnely not so with standard users. I suspect this is because we have: Prevent access to registry editing tools setup in the GPO, though disable regedit from running silenty is set to 'no'. So my questions is a) is that the likely reason why my script isn't working and b) if so is there a regedit alternative. Trying to keep it nice and simple. Code below: @echo off reg query HKEY_CLASSES_ROOT\Access.Application\CurVer if errorlevel 1 goto five for /f
  • 如何在C#中打开与Microsoft Access数据库的连接(How to open connection with Microsoft Access database in C#)
    问题 我正在使用Microsoft Access创建数据库。 这是我的代码: static string Constr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source = MyData.accdb"; OleDbConnection Conn = new OleDbConnection(Constr); DataSet DataSet1 = new DataSet(); string SQLstr = "Select * from Tabel"; OleDbDataAdapter DataAdapter1; Conn.Open(); 我收到此异常: System.Data.dll中发生了类型为'System.Data.OleDb.OleDbException'的未处理异常附加信息:无法识别的数据库格式 回答1 您正在尝试使用OleDb提供程序打开用Access 2007/2010(accdb)创建的Access数据库,该提供程序只能理解用Access 2003创建的MDB文件。 要使用的提供程序是Microsoft.ACE.OleDB.12.0 ,应该已经随最新版本的Office安装了该提供程序。 或者,您可以从Microsoft Access数据库引擎下载适当的位只需注意下载适合您所使用平台的版本(x86或x64)即可。
  • SSIS Excel连接管理器无法连接到源(SSIS Excel Connection Manager failed to Connect to the Source)
    问题 我有一台能够使用“导入向导”创建和运行Excel导入任务的服务器。 我正在尝试使用在该服务器上开发的可视Studio 2010 Integration Services软件包来自动化该过程。 尝试设计包装时会发生问题。 我添加了一个excel连接,并将其指向本地磁盘上的Excel文件(与我已经使用导入向导成功导入的文件相同)。 当我将Excel Source添加到DataFlow并指定excel连接时,当我转到Excel Sheet的名称下拉列表时,我只会看到“无法加载任何表或视图”并得到以下错误。 “无法检索连接管理器的表信息。无法使用连接管理器连接到源...” 我找不到此错误记录在任何地方,我也不知道为什么它失败。 该目录与身份验证的用户共享,并且该文件未被使用。 任何想法如何调试此错误? 我了解在64位模式下运行此程序可能会出现问题,但这是否适用于开发? 我应该补充一点,它是一个Excel 2007文件.XLSX,并且连接设置为Excel 2007。 2019-11-08下面的GavB841给出的答案看起来很有希望,如果有人尝试过并且有效,请告诉我。 (我不再在这个领域工作。) 回答1 似乎未安装32位版本的Excel。 请记住,SSDT是32位IDE。 因此,当从SSDT访问数据时,将使用32位数据提供程序。 当在SSDT之外运行程序包时,它以64位模式运行(并非总是
  • System.UnauthorizedAccessException:检索Word Interop的COM类工厂失败,错误80070005(System.UnauthorizedAccessException: Retrieving the COM class factory for Word Interop fails with error 80070005)
    问题 我在Visual Studio 2008中使用C#ASP .NET项目时遇到问题当我用Windows 7 Ultimate(x64)重新安装计算机时,便开始出现此问题。 为此,我也使用Office 2007。 我收到的错误消息是: System.UnauthorizedAccessException:检索具有以下错误的CLSID为{000209FF-0000-0000-C000-000000000046}的组件的COM类工厂由于以下错误而失败:80070005。位于xxx.Utility.WordDocument..ctor(字符串filePath,HttpServerUtility util)位于在c:\ xxx \ Website \ customer \ communication.aspx.cs:line 127中的customer_communication.BuCreate_click(Object sender,EventArgs e) 回答1 这是我解决此问题的方法: 我正在使用Win 7 64位和Office 2007 运行程序“ dcomcnfg -32 ”。 (如果单词和excel组件运行在64位以下,则找不到该单词和excel组件) 转到“控制台根目录/组件服务/计算机/我的电脑/ DCOM Config /”,查找Microsoft
  • 使用C#阅读MS Exchange电子邮件(Read MS Exchange email in C#)
    问题 我需要能够监视和读取MS Exchange Server(我公司内部)上特定邮箱的电子邮件。 我还需要能够阅读发件人的电子邮件地址,主题,消息正文并下载附件(如果有)。 使用C#(或VB.NET)执行此操作的最佳方法是什么? 回答1 一团糟。 Microsoft官方不支持通过.NET互操作DLL的MAPI或CDO-看起来可以正常工作,但是由于内存模型不同,存在内存泄漏问题。 您可以使用CDOEX,但是它只能在Exchange服务器本身上运行,而不能在远程服务器上运行。 无用。 您可以与Outlook互操作,但是现在您已经对Outlook有了依赖性。 过度杀伤力。 最后,您可以使用Exchange 2003的WebDAV支持,但是WebDAV很复杂,.NET内置的对它的支持很差,并且(更糟的是)Exchange 2007几乎完全放弃了WebDAV的支持。 一个人做什么? 我最终使用AfterLogic的IMAP组件通过IMAP与我的Exchange 2003服务器进行通信,并且最终运行良好。 (我通常会寻找免费的或开放源代码的库,但是我发现所有.NET库都想要-特别是在涉及2003年IMAP实现的一些怪癖时-这个库足够便宜,并且可以在第一个库中使用试试。我知道外面还有其他人。) 但是,如果您的组织使用的是Exchange 2007,那么您会很幸运。 Exchange
  • 在Excel 2007中编写VBA以在Excel 2003中使用(Writing VBA in Excel 2007 for use in Excel 2003)
    问题 我在开发人员所在的位置已更新到Excel 2007,但大多数用户都没有。 我正在为需要包含一些VBA代码的用户构建电子表格模板(* .xlt),并且我想知道在2007年而不是2003年构建该模板时会遇到哪些问题? 我无权使用Excel 2003进行测试的机器,我担心这个特定的项目会走向灾难。 回答1 VBA语言没有更改,但是Office 2007中有其他对象不在Office 2003中。自然地,当您尝试在2003年环境中访问这些项目时,这将导致运行时错误。 是什么阻止您设置要使用Excel 2003开发的虚拟机? 回答2 最佳(最可靠)的做法不是始终依赖已添加到Excel 2007对象库中的对象和方法的可能不完整的列表,而是始终在可能用于运行代码的最旧版本的Excel中进行开发。 回答3 我发现的一个区别是,与从功能区(在Excel 2007中)调用子例程相比,从菜单(在Excel 2003中)调用子例程必须具有不同的签名。 而且,Excel 2003无法识别IRibbonControl并引发编译错误。 为了实现跨版本兼容性,我使用了条件编译参数,然后在预处理器宏中进行检查。 例如 #If USINGRIBBON Then Public Sub CallFromRibbon(control As IRibbonControl) #Else Public Sub
  • Microsoft Office 互操作程序集参考(Microsoft Office Interop Assembly references)
    问题 我有一个在 Visual Studio 2005 中开发的应用程序,我正在使用 ClickOnce 进行部署。 我的解决方案包含两个项目 - 一个用 VB 编码的用户界面层和一个用 C# 编码的类库。 我的 C# 类库有一些使用 Outlook 和 Excel 互操作程序集(Microsoft.Office.Interop.Outlook 和 Microsoft.Office.Interop.Excel,版本 11)的代码。 这是我的问题。 虽然我没有找到绝对的地方,但我的理解是,您必须拥有适当版本的 Office 应用程序(Outlook/Excel)才能安装使用 Interop 程序集的应用程序。 这样对吗? 如果 (1. = 是) 那么 如果您的应用程序仅将 Interop 程序集用于几个功能,而这些功能将仅被总用户群中的少数几个使用,您将如何处理? 如果只有部分用户需要使用这些功能,为什么我必须要求我的应用程序的每个用户都安装 Microsoft Office? 这些互操作程序集只是.dll文件,那么是什么使它们与其他文件如此不同,因为无论客户端安装什么软件,您都不能只将文件与项目一起发布并满足参考? (显然,我对 GAC 及其对 Visual Studio 行为的影响知之甚少。)我很乐意编写自己的代码来检查是否存在使用它们的少数功能所需的 Office 软件。 没有
  • 尝试使用Excel 2007进行Office Automation,但仍使用Excel 2003(Trying to do Office Automation with Excel 2007, but keeps using Excel 2003)
    问题 环境: Windows XP机器 Excel 2007和Excel 2003均已安装(不按时间顺序排列)。 C#3.5 问题: 当我使用PIA进行某些Office自动化时,我使用以下代码行: var excel = new ApplicationClass(); PIA的版本专门将其称为Excel 12。 C:\ WINDOWS \ assembly \ GAC \ Microsoft.Office.Interop.Excel \ 12.0.0.0__71e9bce111e9429c \ Microsoft.Office.Interop.Excel.dll 但: excel.Version;//this is 11.0 instead of 12.0 因此,当我尝试使用扩展名.xlsx打开文件时,它会警告我有关文件转换功能丢失的信息,并使用excel 2003打开。我很确定它与安装顺序为2007-> 2003有关,但是我无法在计算机b / c上卸载2003,因此对于使用excel 2003的无关项目,我们的网络服务器上有一些办公自动化功能。 我看了Policy.11.0.Microsoft.Office.Interop.Excel.config东西,但是它说 <bindingRedirect oldVersion="11.0.0.0" newVersion="12.0.0.0
  • 调试 SharePoint 2007 代码(Debugging SharePoint 2007 Code)
    问题 如何调试 SharePoint 2007 代码? 由于 SharePoint 在远程服务器上运行,并且我正在 Windows xp 机器上开发(将必要的 .dll 文件复制到我的 GAC),我没有找到简单的调试方法。 断点不起作用等。 我想出的最好方法是在 web.config 文件中启用页面跟踪,在我的代码中写入跟踪消息,并在需要调试时访问 trace.axd。 有没有人有更好的调试建议? 我错过了什么吗? 回答1 来自安德鲁康奈尔关于这个主题的博客文章: 将调试器附加到 GAC 的程序集:“为什么我的断点没有被命中?!?!” 曾经去过吗? 我也是……那是什么皮塔饼! 这是怎么回事? 好吧,程序集在 GAC 中,Visual Studio 调试器看不到调试符号(又名:*.pdb)。 除非您在设置所有 PDB 所在的符号存储时遇到了麻烦,否则您需要将调试符号与程序集放在同一位置。 诀窍是在 GAC 中找到包含您的 DLL 的文件夹。 c:\windows\assembly 文件夹不是真正的文件夹,而是一个虚拟文件夹。 要进入 REAL 文件夹,请执行以下操作: 开始运行 %systemroot%\assembly\gac [回车] 这将打开 GAC 文件夹。 现在,四处看看,直到找到一个看起来像这样的文件夹(您可能需要跳上一个文件夹并潜入 MSIL 文件夹):[程序集文件名
  • 如何在Excel中打开Word 2007/2010的特定版本(How to open specific version of Word 2007/2010 in Excel)
    问题 我同时安装了Word 2007和2010。 我需要从Excel中打开Word,但需要指定在VBA中打开哪个版本。 我尝试过后期装订 Dim wordApp2007 As Object Dim wordApp2010 As Object Set wordApp2007 = CreateObject("Word.Application.12") wordApp2007.Visible = True Set wordApp2010 = CreateObject("Word.Application.14") wordApp2010.Visible = True 但两者都打开Word 2010 我也尝试过使用进行早期绑定 Dim wordApp As Word.Application Set wordApp2007 = New Word.Application wordApp2007.Visible = True 并设置对Word 12.0对象模型的引用,但这仍会打开Word 2010 如果我使用以下方式注册每个版本的Word "C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" /regserver "C:\Program Files\Microsoft Office\Office14\WINWORD.EXE"
  • Trying to do Office Automation with Excel 2007, but keeps using Excel 2003
    Environment: Windows XP machine Both Excel 2007 and Excel 2003 installed (in that order, not chronologically). C# 3.5 Problem: When I use the PIAs to do some Office automation, I use the following line of code: var excel = new ApplicationClass(); The PIA's version specifically refers to it as Excel 12. C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll But: excel.Version;//this is 11.0 instead of 12.0 Thus, when I try to open a file with extention .xlsx, it warns me about lost functionality in the file conversion, and opens it
  • How to use Office from Visual Studio C#?
    The technique for adding a reference to the COM interop of Office in Visual Studio is to go to: References Add Reference Select the COM tab Select Microsoft Office 11.0 Object Library And magically named reference appears: Microsoft.Office.Core The Project.csproj file shows the details of the reference: <COMReference Include="Microsoft.Office.Core"> <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid> <VersionMajor>2</VersionMajor> <VersionMinor>3</VersionMinor> <Lcid>0</Lcid> <WrapperTool>primary</WrapperTool> <Isolated>False</Isolated> </COMReference> And the project is checked into source
  • Ensure SQL-92 on Access 2000 mdb to SQL Server under Access 2010
    Due to circumstances not fully under my control, I have to develop ACCESS queries which will be stored in an Access 2000 MDB but which may be developed under any one of: Access 2000, 2002, 2003, 2007, 2010. These queries will access (via linked tables) either an MS SQL Server DB or an Access 2000 .MDB file. In the past, we had issues which we tracked down to queries not being ANSI-92 compatible. This we solved by marking the Check Box in the Tables/Queries tab of the Tools|Options dialog (under older versions of Access than 2007). We move these Access application .MDBs between various systems