2014-06-10 3 views
2

일부 출력을 저장하기 위해 Access 2010에서 VBA 매크로를 사용하여 새 테이블을 만들려고합니다. 아래 빈 테이블을 만드는 것의 기본 작업을 수행 할 수 없습니다. 관련 코드 :런타임 오류 '3264'액세스 2010 VBA

Dim dbs As DAO.Database 
Dim emptyTdf As DAO.TableDef 
Dim rs, emptyRs As DAO.Recordset 
Dim fld, emptyFld As DAO.Field 
Dim fldnm As String 
Dim fldv As Variant 
Dim isEmptyField As Boolean 



Set dbs = CurrentDb 
Set rs = dbs.OpenRecordset("AP") 
Set emptyTdf = dbs.CreateTableDef("AP_Empty") 
Set emptyFld = emptyTdf.CreateField("HID", dbText, 255) 
dbs.TableDefs.Append emptyTdf 

마지막 줄은 런타임 오류를 설정합니다. 필자는 테이블을 만들기 위해 DAO 메서드를 사용하는 온라인 자습서 몇 개를 따랐으며 코드가 변하지 않았으므로 필자가 비틀 거리게 된 문법적인 문제라고 생각합니다.

+0

시도가 [예]를 따르도록 (http://msdn.microsoft.com/en-us/library/office를 /ff193203(v=office.15).aspx) –

답변

1

당신은있는 TableDef 자체를 추가하기 전에 해당 TableDef에 필드를 추가해야합니다

Dim dbs As DAO.Database 
Dim emptyTdf As DAO.TableDef 
Dim rs, emptyRs As DAO.Recordset 
Dim fld, emptyFld As DAO.Field 
Dim fldnm As String 
Dim fldv As Variant 
Dim isEmptyField As Boolean 

Set dbs = CurrentDb 
Set rs = dbs.OpenRecordset("AP") 
Set emptyTdf = dbs.CreateTableDef("AP_Empty") 
Set emptyFld = emptyTdf.CreateField("HID", dbText, 255) 

'Append your created field. 
emptyTdf.Fields.Append emptyFld 

dbs.TableDefs.Append emptyTdf 

'Just so your collections and the db window is refreshed. 
dbs.TableDefs.Refresh 
Application.RefreshDatabaseWindow