首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MS Access VBA从范围创建表

使用MS Access VBA从范围创建表
EN

Stack Overflow用户
提问于 2013-08-22 19:08:30
回答 1查看 1.4K关注 0票数 0

我是MSAccess的VBA新手。我正在尝试做的是从每组名称创建一个新的表,例如

代码语言:javascript
运行
复制
Name  Email  Company

Abby  Abby@Time.com  Time    
BeeT  Beet@Share.com Share    
BeeT  Beet@Share.com Share    
BeeT  Beet@Share.com Share    
Carol Carol@Total.com Total    
Carol Carol@Total.com Total

我想要做的是从每个帐单名称创建一个新表,这样在这种情况下将有3个新表,例如

代码语言:javascript
运行
复制
Name  Email  Company

Abby  Abby@Time.com  Time
代码语言:javascript
运行
复制
Name  Email  Company

BeeT  Beet@Share.com Share    
BeeT  Beet@Share.com Share    
BeeT  Beet@Share.com Share
代码语言:javascript
运行
复制
Name  Email  Company

Carol Carol@Total.com Total    
Carol Carol@Total.com Total
EN

回答 1

Stack Overflow用户

发布于 2013-08-22 20:59:54

有几种方法可以做到这一点。实际上,您可以遍历该表,如果该表已经存在,则可以将数据附加到该表。如果没有,那么您可以创建一个新表。这涉及到检查数据库对象中的现有名称,这是更多的工作。

最简单的方法是为每个帐单名称创建一个表,然后过滤原始表以添加适当的行。

代码语言:javascript
运行
复制
Dim db as Database
dim rec as Recordset
Dim rec2 as Recordset
Dim tbl As TableDef
Dim fld As Field
Dim fld2 as Field

Set db = CurrentDB
set rec = db.OpenRecordSet ("Select DISTINCT Company from YourTableName")

Do While rec.EOF = False
   Set rec2 = db.OpenRecordSet ("Select DISTINCT * from YourTableName WHERE Company = '" & 
   rec("Company") & "")
   Do While rec2.EOF = False
      Set tbl = dbs.CreateTableDef(Rec2("Company"))
      Set fld = tbl.CreateField(Rec2("Name"), dbText)
      Set fld2 = tbl.CreateField(Rec2("Email"), dbText)

      tbl.Fields.Append fld
      tbl.Fields.Append fld2
      db.TableDefs.Append tbl
      db.TableDefs.Refresh
      rec2.MoveNext
   Loop
   rec.MoveNext
Set rec2 = Nothing
Loop

Set db = Nothing
Set rec = Nothing
Set rec2 = Nothing
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18378748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档