Master_Shake 发表于 2015-10-12 16:15:49

Excel作为数据库

好吧,我离开这个圈子已经有一段时间了,刚刚才得到这个消息。我正在寻找关于使用excel作为数据库来生成BOM的最佳方法的意见(友好点,我知道我打开了大门)。我们有装配图标签,每个标签上都有零件列表。用户输入他们需要多少单位,最后一个选项卡根据prev创建BOM。标签。excel文件有22mb,所以我知道这不是完成任务的最有效的方法,但是我似乎不知道什么是最有效的方法。我在考虑读入一个CSV文件,但是我也不确定如何最好地管理这个文件。我考虑过XML,但是管理这个文件并不容易。
有什么想法吗?
**** Hidden Message *****

MickD 发表于 2015-10-12 16:19:12

这是使用 Inventor、AutoCAD* 还是 Revit?
还有哪些其他程序可用,例如;纳威斯?

mmelone 发表于 2015-10-12 16:20:37

一切都在excel中完成。 我会尝试获得一些屏幕截图

MickD 发表于 2015-10-12 16:25:27

这里有3张照片,第一张,数量为零,第二张我输入了数量为1,第三张,显示了基于上一个选项卡的BOM表

mmelone 发表于 2015-10-15 17:30:56

谢谢米克,我会看看我能拉在一起。我以前用过Access,所以我希望它会很简单。

mmelone 发表于 2015-10-16 09:24:45

伟大的帖子
您也介绍了我们遇到/知道的所有内容,这就是为什么我要用MySql将其打造成一个web应用程序(如果我有选择的话)。我甚至认为,如果您以前没有开发过access,那么学习曲线可能会更容易。要充分利用access,需要深入了解access的工作原理,以创建简单的查询和报告(IMO)
为了解决您提到的问题,我们决定只创建一个主模板数据库,用户可以将其复制到每个项目中。这样可以将错误与其他作业隔离开来,并将副本保存在存档的项目文件夹中,从而使开发能够毫无问题地继续进行
如果我们需要对错误进行更新,我们可以导出表或快速复制/粘贴到新版本中,或将固定代码模块导出到现有数据库中。
干杯,
米克

n.yuan 发表于 2015-10-19 12:35:37

就VBA代码开发而言,这取决于我从事的工作。在Access中,我会将所有VBA作为Access前端exe文件的一部分。但是,对于任何其他程序(Excel、Autocad等),我设置了一个标准模块,该模块具有在程序打开时加载vba模块的功能。这样,无论程序何时运行,他们都使用最新版本的代码,而不必在我每次更新时发布更改。只需更新一个文件,所有更新就会自动分发。
例如,我创建了许多Excel UDF。所以,我创建了一个Excel插件,基本上相当于自举代码(和计算机BIOS的想法一样)。外接程序中的代码从不更改。
在ThisWorkbook部分中:
Private Sub app_WorkbookActivate(ByVal Wb As Workbook)
'Register the Macros
Debug.Print "Registering Macros"
Call RegisterMacros
End Sub
Private Sub Workbook_Open()
On Error Resume Next
'Remove Functions
Set mf = Application.VBE.VBProjects("FunctionsProject").VBComponents.Item("Functions")
Application.VBE.VBProjects("FunctionsProject").VBComponents.Item("Functions").Name = "FunctionsRemove"
Application.VBE.VBProjects("FunctionsProject").VBComponents.Remove mf
'Add Functions from network
Application.VBE.VBProjects("FunctionsProject").VBComponents.Import "\\m-storage\shared\ExcelFunctions\Functions.bas"
End Sub

每次打开Excel时,该代码都会导入Functions.bas(模块),以确保每个人都使用最新的代码。将引导代码保存在外接程序中使最终用户更容易添加到Excel中。

yosso 发表于 2015-10-19 18:01:44

你们俩有没有可以分享的基本例子? 我从来没有从头开始。 我试图从excel导入,但这并不顺利,所以我将不得不从头开始输入所有内容。 另外,前端会是什么样子? 我一直在编辑现有的数据库,所以我不确定从什么开始。
谢谢

MickD 发表于 2015-10-20 11:52:10

作为程序员,我们确实经常看到那些“聪明的专业人士”,工程师、土地测量员、设计师...过度使用(如果不是滥用!)擅长存储他们的任务关键型数据,难以向他们销售更好、更安全的替代产品。有时候程序员可以决定,有时候不能。
然而,作为CAD程序员,无论我们对数据存储在何处/如何存储是否有发言权,我们都应该首先关注使我们的解决方案结构正确,这一点我在本主题的讨论中没有看到提及。
我所说的“结构正确”是指这种类型的典型解决方案由3部分组成:在AutoCAD/绘图中操作对象的代码、在AutoCAD和数据存储之间传递数据的代码,以及实际组织数据存储的代码(特别是,如果它是您自己的自定义数据存储,如Excel表、CSV、XML...).
关键部分是中间部分:数据访问层。它应该针对一个接口进行编码,以便from部分(AutoCAD端代码)不知道后端是什么,是Excel表,还是某种数据库。这样,如果后端数据存储发生变化,只需针对新的数据存储实现接口,CAD端代码(来回读取/写入数据)不会受到影响,也不需要重新构建/重新编译。
尽管如此,但是如果您使用VBA,我不确定您是否可以使用接口。回到我使用VB5/6的时候,是的,可以定义接口并实现它。为什么还和VBA在一起?

n.yuan 发表于 2015-10-20 14:01:12

费-fi-fo-fum - 我认识变电站材料...
我们已经开始将 Inventor 2015 与用于变电站设计的加载项结合使用 - http://substationdesignsuite.com/
现在我们只需将材料输出到 Inventor 的电子表格中 - 但最终希望为 Inventor 创建一个将材料绑定到外部数据库的加载项。
在处理传输线项目时,我们确实使用Access作为材料 - 但现在使用另一个程序(PLS-CADD)的输出是一个令人困惑的混乱。
Joe Celko的书 - SQL for Smarties中的树和层次结构 - 是一本有趣的读物。 在我的头顶上,但我们都必须从某个地方开始。
Access Solutions 一书是一本极好的资源。
无论如何,请向我们更新您继续的路径。
页: [1]
查看完整版本: Excel作为数据库