Run Time Error 3001: Invalid Argument (1 Viewer)

kapaw

Registered User.
Local time
Yesterday, 22:14
Joined
Mar 30, 2011
Messages
30
I've been experiencing this error and I don't know the reason why. I've checked my syntax and it looks good. Any suggestions?

Private Sub CreateBOMTable()
Dim curDatabase As DAO.Database
Dim tblBOM As DAO.TableDef
Dim colMCN As DAO.Field
Dim colPartType As DAO.Field
Dim colDescription As DAO.Field
Dim colLCP As DAO.Field
Dim colMPN As DAO.Field

Set curDatabase = CurrentDb
Set tblBOM = curDatabase.CreateTableDef("BOM")

Set colMCN = tblBOM.CreateField("MCN", DB_TEXT)
colMCN.Attributes = dbAutoIncrField
tblBOM.Fields.Append colMCN

Set colPartType = tblBOM.CreateField("Part Type", DB_TEXT)
colPartType.Attributes = dbAutoIncrField
tblBOM.Fields.Append colPartType

Set colDescription = tblBOM.CreateField("Description", DB_TEXT)
colDescription.Attributes = dbAutoIncrField
tblBOM.Fields.Append colDescription

Set colLCP = tblBOM.CreateField("Life Cycle Phase", DB_TEXT)
colLCP.Attributes = dbAutoIncrField
tblBOM.Fields.Append colLCP

Set colMPN = tblBOM.CreateField("MPN Status", DB_TEXT)
colMPN.Attributes = dbAutoIncrField
tblBOM.Fields.Append colMPN

curDatabase.TableDefs.Append tblBOM ' error shows here
MsgBox "A table named BOM has been created"

End Sub
 

JANR

Registered User.
Local time
Today, 07:14
Joined
Jan 21, 2009
Messages
1,623
First of you cannot have more than 1 Autoincrement (Autonumber) in a table and it has to be Long Integer not text.

Here is som code samples you can look at: http://allenbrowne.com/func-dao.html#CreateTableDAO

As for your code it can be written something like this:

Code:
Public Sub MakeTableDemo()
Dim curDatabase As DAO.Database
Dim tblBOM As DAO.TableDef
Dim fld As DAO.Field
 
Set curDatabase = CurrentDb
Set tblBOM = curDatabase.CreateTableDef("BOM")
 
With tblBOM
    ' Only one AutoIncrement field pr table
    Set fld = .CreateField("MCN", dbLong)
        fld.Attributes = dbAutoIncrField + dbFixedField
        .Fields.Append fld
    .Fields.Append .CreateField("Part Type", dbText)
    .Fields.Append .CreateField("Description", dbText)
    .Fields.Append .CreateField("Life Cucle Phase", dbText)
    .Fields.Append .CreateField("MPN Status", dbText)
End With
 
curDatabase.TableDefs.Append tblBOM
Application.RefreshDatabaseWindow
 
Set fld = Nothing
Set tblBOM = Nothing
Set curDatabase = Nothing
End Sub

JR
 

Users who are viewing this thread

Top Bottom