如何根据字段值创建新表?

时间:2016-08-04 18:15:43

标签: ms-access ms-access-2013

自从我使用Access以来已经很多年了,我确实生锈了...我想基于单个值将现有表拆分为多个表。例如: (注意价值各不相同,除了下面的Col C之外没什么关系)

Col A |  Col B  | Col C | Col D
--------------------------------
aaa   |  xxx    | app1  | somepath1
bbb   |  yyy    | app1  | somepath2
ccc   |  zzz    | app2  | somepath3
ddd   |  www    | app2  | somepath4
eee   |  vvv    | app3  | somepath5

基本上我想拆分并创建一个名为" app1"它包含来自app1的所有行,一个名为" app2"的表。它包含来自app2等的所有行

不是通过make table查询手动执行此操作,而是将每个appname复制并粘贴到条件字段中,我更愿意自动执行此操作并使其成为可以在未来数据上运行的已保存查询。

我尝试直接编辑SQL并选择一个不同的appname,然后创建一个基于此的选择,但我尝试的每一件事都会产生错误"该字段太小而无法接受你试过的数据"。我甚至不确定这意味着什么,因为我的所有字段都是"长文字",并且在大多数情况下数据不超过200个字符。

有关如何自动执行此操作的建议吗?谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

Function split()
Set db = CurrentDb()
Set Applist = db.OpenRecordset("select ColC from SourceData group by ColC")
Applist.MoveFirst
Do While Not Applist.EOF
    App = Applist.Fields("ColC").Value
    SQL = "select * into [" & App & "] "
    SQL = SQL & " from [SourceData] where ColC='" & App & "'"
    db.Execute (SQL)
    Applist.MoveNext
    Loop
MsgBox ("Done")
End Function

注意 - 这假设ColC的内容是“好的” - 例如没有引号或括号。空间应该没问题。