sql - VBA [Access DB] - 将多个表合并为一个表
问题描述
我有一个宏,可以扫描定义的 \Dir 中的文件夹。抓取每天生成的一堆 csv 文件。从这里我将每个 csv 文件作为新表导入我的 Access db,然后删除空表(系统生成文件,无论是否有任何生产)。这一切都很好(见下面的屏幕截图)
从这里我想将每个表合并到一个表中,然后我可以将其拉入 PowerBI 以开发一些所需的生产报告。注意:这将成为每天在设定时间执行的计划流程,因此我需要能够将导入的表添加到预先存在的表中。
在某些情况下:
我知道这似乎是一种获取所需数据的真正循环方式。基本上,这只是一个备用的临时解决方案。我们已经获得了供应商提供的直接数据馈送的访问权限,以构建我们自己的数据仓库。不幸的是,我们提供的当前数据与他们每天提供的 csv 转储完全不相符 - 所以我们认为我们正在等待澄清的数据发生了一些变化。与此同时,我们还有 1.5 周的时间来制作我们的第一份 Power BI 报告,因此我们需要一个解决方案来以防万一。
任何有关如何合并这些表的帮助,甚至是导入这些数据的更好方法都将不胜感激。
Private Function ProcessFile(filename As String, pName As String, sName As String, Optional rName As String = "NULL")
'Get Actual File Name
ActualName = TargetPath & Dir(TargetPath & filename)
'Set Placeholder Char (To Keep RoomName to x4 Chars)
Dim placeholderchar As String: placeholderchar = "x"
If Len(rName) < 4 Then
For i = 1 To 4 - Len(rName)
rName = rName & placeholderchar
Next i
End If
'Define New Table Name for csv File
Dim tblName As String: tblName = UCase(Replace(TargetDate, "-", vbNullString) & Left(sName, 3) & pName) & rName
'Create New Table from csv File
Call DoCmd.TransferText(TransferType:=acLinkDelim, TableName:=tblName, _
filename:=ActualName, hasfieldnames:=True)
'If Table is Empty; Delete Table & Exit Function
If DCount("*", tblName) = 0 Then: Call DoCmd.DeleteObject(acTable, tblName): Debug.Print ("Table Deleted: " & tblName): Exit Function
Debug.Print ("Table Added: " & tblName)
End Function
解决方案
这有效:
如果所有字段名称都相同,您可以简单地在最后做: CurrentDb.Execute "INSERT INTO MyWorkTable SELECT * FROM " & tblName – Andre 16 小时前
我现在正在努力添加我们需要能够报告数据的标识符,因为数据来自几个工厂和这些工厂内的几个不同的房间/部门
推荐阅读
- python - 如何解决 OSError: [Errno 101] Network is unreachable?
- reactjs - @fullcalendar/react 标题选项作为下拉导航
- asp.net-core - ClaimsPrincipal 在 IIS 上不起作用 - 对象引用未设置为对象的实例
- kubernetes - 打开/关闭在 k8s pod 的 docker 容器中运行的 Promtail
- google-sheets - Google 表格中的问题与 SUM、ARRAYFORMULA、SUMIF 和“不等于”运算符的组合
- google-drive-api - 请求“.txt”类型的 Google 驱动器快捷方式文件时出错
- android - 我更改了 applicationId 并且调试(logcat)不再起作用
- wordpress - 根据 learndash 网站的语言隐藏课程
- c - 用于 UnitTests 的 Makefile(通用文件)
- python - AnalysisException:不支持在连接类型 LeftSemi 的连接条件中使用 PythonUDF