【发布时间】:2013-03-01 20:42:23
【问题描述】:
我有一个 Access 数据库,可以将数据导出到程序生成的 excel 模板中,以实现可见性、更复杂的计算/可视化,最重要的是,它允许用户更多地使用数据。
此模板需要做的基本事情之一是执行求解程序。求解器在访问中的任何标准参考库中都不存在(据我所知)。我对这方面有点陌生,但我环顾网络,发现 Solver32.dll 在哪里,我将参考指向它,它不会接受它。又看了看,发现我可能需要用 regsvr32 注册它,因为它不在 system32 目录中,我试过了,但没有用。
这可能是由于我遇到了一些管理员级别的访问问题(工作计算机....叹息),我正在尝试对这些问题进行排序,但我觉得这无法解决问题。
不管怎样,提问时间:
1) 我是否只需要管理员权限来注册 Solver32.dll,然后我的参考就可以轻松工作了吗?
2) 如果没有,还有其他方法可以引用求解器库吗?
3)如果没有,或者如果我无法获得注册solver32.dll的权利(可能,我的IT部门可能很吝啬),有没有办法将插件求解器代码打开到我正在使用的excel表中,只是它在那里运行吗?因为如果有代码就超级简单:
........
AddIns("Solver Add-In").Installed = True
solveradd cellref:="$D$6", Relation:=1, FormulaText:="1"
solveradd cellref:="$D$6", Relation:=3, FormulaText:="0"
SolverOk SetCell:="$F$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$6:$D$6", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
............
无论如何,一天中的大部分时间都在寻找解决方案。无助于 MS 在它的无限智慧中选择将此程序命名为 Access,这在谷歌搜索(讽刺)时确实有帮助。
编辑:在 cmets 中回答一些问题
版本:Access 2010
错误: 当我尝试从 Access VBA IDE 引用 dll 时,出现此错误“无法添加对指定文件的引用”
当我尝试运行 regsvre.exe 时,我收到此错误“模块 'C:\ProgramFiles.............\Solver32.dll”已加载但入口点 DllRegisterServer没找到。确保“C:\ProgramFiles.........\Solver32.dll”是有效的 DLL 或 OCX 文件,然后重试。”
【问题讨论】:
-
I tried that and it didn't work.我假设这给出了某种错误消息? -
您正在运行哪个版本的访问权限。
-
你检查过dll的文件属性吗?您尝试连接到哪个版本的求解器?您是否尝试过在 excel 中设置参考?您是否尝试将solver.dll 复制到文件系统中注册副本的其他位置?到目前为止,您收到的错误消息是什么?
-
也许有一些旧的/损坏的参考文献在附近?参看。 this code
-
只是一个疯狂的猜测:引用应该是solver32.xla[m]而不是solver32.dll?