【发布时间】:2018-01-26 14:10:18
【问题描述】:
我维护了一个包含许多不同制造商的商品的库存/价格数据库。当我们获得价格更新时,制造商会发送一个新的 Excel 文档。不幸的是,这些 Excel 文档因制造商而异,并且它们的工作表没有标准化的标签和格式(即使来自同一制造商)。
我想要一个表格,以便我的员工可以将新定价和新零件编号导入我们的数据库,并删除旧零件编号。我只希望在新的价目表中不存在旧部件号(有例外,请稍后查看)并且我的库存为 0 时删除旧部件号。
现在我已经在 Excel 中完成了大量的 VBA 工作,以自动对 Excel 价目表进行格式化和标记。这在大多数情况下都非常有效,除非制造商对其布局进行了更改。尽管如此,现在我们让 Excel 工作表“适合”我的 Access 数据库,然后再通过手写查询手动导入。
一点信息:我所有的PartNumbers 都是独一无二的。我有的一些数据是手工录入的,我在更新定价和其他信息时需要保留这些数据(例如PageNumber可能在今年的目录中有所不同,但我现有的Description和SalePrice需要保持机智。)
以下是我经常遇到的问题:
我收到的价目表总是不同的。有些工作表可能有PartNumber、Price、StandardPack。其他一些工作表可能有PartNumber、Price、Description、UMRP、PageNumber。其他工作表可能有很多不相关的数据,例如Weight,这些数据与我的系统无关。我需要一个可以将这样的动态数据导入单个表的表单/查询。
一些制造商有不同的价格表。我有一个DealerNet 定价列表以及Description PageNumber 等其他信息。然后我有一个单独的覆盖表,其中包含SalesDeal 价格和StandardPack 我们大量购买的物品的信息。由于我无法解释的原因,这两个价目表将具有完全不同的格式和列标签。这是一个例外,当我只是更新我的SalesDeals 时,我不希望删除该制造商的其他部件号。这可以通过 MsgBox 弹出窗口来完成。
某些价目表的格式可能需要修正。问题是,有时制造商会更改他们的列表,而我的员工无法充分理解 VBA 以在需要时解决此问题。 一些数据可能被分成子类别。现在我在导入 Access 之前在 Excel VBA 中修复了这个问题。
子类别:
某些价目表的饰面可能与部件号分开,我需要为每个单独的饰面单独一行。目前,在导入 Access 之前,此问题已在 Excel VBA 中修复,但有时如果制造商更改其价目表,它会中断。
单独的完成栏:
我想我最大的问题是,如何将可能具有不同列的 Excel 工作表导入单个表格?导入前是否最好继续规范化我的 Excel 工作表?通过规范化,我是否只需要重命名现有列以适合我的表格,还是我的 Excel 工作表需要在导入之前显示我的所有 Inventory 表格列?
【问题讨论】:
标签: excel ms-access vba import-from-excel