2013-08-22 2 views
0

Я новичок в VBA для MSAccess. То, что я пытаюсь сделать, - создать новую таблицу из каждой группы имени, например.Создать таблицу по диапазону с использованием MS Access VBA

Name Email Company 

Abby [email protected] Time  
BeeT [email protected] Share  
BeeT [email protected] Share  
BeeT [email protected] Share  
Carol [email protected] Total  
Carol [email protected] Total 

То, что я хочу сделать, это создать новую таблицу из каждого Billing Name, так что в этом случае будет 3 новых таблиц например

Name Email Company 

Abby [email protected] Time 
Name Email Company 

BeeT [email protected] Share  
BeeT [email protected] Share  
BeeT [email protected] Share 
Name Email Company 

Carol [email protected] Total  
Carol [email protected] Total 

ответ

0

Там в несколько способов сделать это. Фактически вы можете пройти через таблицу, и если таблица уже существует, вы можете добавить данные в таблицу. Если это не так, вы можете создать новую таблицу. Это включает проверку объектов базы данных для существующих имен и большую работу.

Самый простой способ - просто создать таблицу для каждого имени биллинга, а затем отфильтровать исходную таблицу, чтобы добавить соответствующие строки.

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

Я пробовал в течение выходных, и это терпит неудачу. Я продолжаю бить синтаксическую ошибку – user2706943

+0

Мне нужно точно знать, что такое ошибка, и точно, в какой строке она происходит. Я могу вам помочь, но мне нужна более подробная обратная связь. –

+0

Привет, Джонни, мне удается решить эту проблему, но вышло не то, что он создал таблицу с именем share, а два поля вызывают имя BeeT и [email protected] Я хотел бы создать некоторую случайную таблицу: Table1, Table2, Table3 и каждая таблица имеет поля Name, Email и Company с данными компании, например Table1, Fields Name, Email, Company с данными Abby [email protected] Время и Таблица2, Название поля, Электронная почта, Компания с данными BeeT [email protected] Доля и т. Д. – user2706943

Смежные вопросы