Randall Anthony
ranthony at wrsystems.com
Wed Sep 3 09:29:54 CDT 2003
Before I begin to go through and try out y'alls solutions, I must apologize
as our email server has been down since COB yesterday. I've about 100
emails to sort through first. Thanks!!
-----Original Message-----
From: Michael R Mattys [mailto:michael.mattys at adelphia.net]
Sent: Tuesday, September 02, 2003 4:39 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Alter Table
Hi Anthony,
I usually use DAO for this:
Usage:
Call CreatePKAutoIncr(CurrentDB, "Table","Field",True)
Private Function CreatePKAutoIncr(objDB As DAO.Database, _
tdfName As String, fldName As String, PK As Boolean)
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
objDB.TableDefs.Refresh
Set tdf = objDB.TableDefs(tdfName)
Set fld = tdf.CreateField(fldName, dbLong)
With fld
.OrdinalPosition = 0
.Attributes = dbAutoIncrField
End With
tdf.Fields.Append fld
If PK = True Then
Set idx = tdf.CreateIndex("PrimaryKey")
With idx
.Primary = True
.Required = True
.Unique = True
End With
Set fld = idx.CreateField(fldName)
idx.Fields.Append fld
tdf.Indexes.Append idx
End If
RefreshDatabaseWindow
Exit_CreatePKAutoIncr:
On Error Resume Next
Set idx = Nothing
Set fld = Nothing
Set tdf = Nothing
Exit Function
Err_CreatePKAutoIncr:
MsgBox Err.Description, , "Error in Function mTbl.CreatePKAutoIncr"
Resume Exit_CreatePKAutoIncr
End Function
Michael R. Mattys
Try MattysMapLib for MapPoint at
www.mattysconsulting.com
----- Original Message -----
From: "Randall Anthony" <ranthony at wrsystems.com>
To: "'Access Developers discussion and problem solving'"
<accessd at databaseadvisors.com>
Sent: Tuesday, September 02, 2003 4:18 PM
Subject: RE: [AccessD] Alter Table
> Thanks for that Susan, but I should have been more specific. I've got a
> table that is already populated with data, and three of the 6 fields need
to
> be turned into a PK. I used to do this manually, but I'm automating this
> feature so users can do it themselves. Basically, a remote dbase
> imports/links tables from sql, a make table query creates a new table, the
> link table is deleted, and the PK needs to be set for the new table.
>
> -----Original Message-----
> From: Susan Harkins [mailto:harkins at iglou.com]
> Sent: Tuesday, September 02, 2003 3:57 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Alter Table
>
> More than one way to do it --
>
> SQL:
> ALTER TABLE tbl
> ADD COLUMN fld AUTOINCREMENT
> CONSTRAINT pk PRIMARY KEY
>
> ADOX:
> Function AddAutoNumberField(fldname As String, seedvalue As Long, _
> incvalue As Long, tblname As String)
> Dim cat As New ADOX.Catalog
> Dim col As New ADOX.Column
> cat.ActiveConnection = CurrentProject.Connection
> With col
> .Name = fldname
> .Type = adInteger
> Set .ParentCatalog = cat
> .Properties("AutoIncrement") = True
> .Properties("Seed") = CLng(seedvalue)
> .Properties("Increment") = CLng(incvalue)
> End With
> cat.Tables(tblname).Columns.Append col
> Set cat = Nothing
> Set col = Nothing
> End Function
>
>
>
>
>
>
> ----- Original Message -----
> From: "Randall Anthony" <ranthony at wrsystems.com>
> To: <accessd at databaseadvisors.com>
> Sent: Tuesday, September 02, 2003 3:23 PM
> Subject: [AccessD] Alter Table
>
>
> > Hi all,
> > I know this has got to be an easy one, but help in XP and 2K is driving
me
> > nuts!! I just want to alter an A2K table with code and create a primary
> key
> > in it. Any suggestions? Thanks a bunch.
> >
> > Randy @ ext. 473
> >
> > _______________________________________________
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
> >
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com