> You didn't declare nor instantiate fld1 anywhere. You've got fld, fld2,
> fld3, fld4 and fld5.
[quoted text clipped - 79 lines]
> > Name])"
> > End Sub
Hold on, I just looked a little closer, and you're mixing DAO and ADO in
there. You need to use strictly DAO. ADO is not capable of doing what you're
trying to make it do. (You could use ADOX if you really want to, but for Jet
tables, DAO is better)
Sub FixTeam_table()
Const conTable = "1GBBU Teams"
Const confield = "Year"
Const confield2 = "Dept"
Const confield3 = "Team Name"
Const confield4 = "Team Type for CIP"
Const confield5 = "Team Multiplier Type"
Dim tdf As DAO.TableDef
Dim fld1 As DAO.Field
Dim fld2 As DAO.Field
Dim fld3 As DAO.Field
Dim fld4 As DAO.Field
Dim fld5 As DAO.Field
Dim dbs As DAO.Database
Set dbs = DBEngine(0)(0)
Set tdf = dbs.TableDefs(conTable)
Set fld1 = tdf.Fields(confield)
Set fld2 = tdf.Fields(confield2)
Set fld3 = tdf.Fields(confield3)
Set fld4 = tdf.Fields(confield4)
Set fld5 = tdf.Fields(confield5)
fld1.Properties("Required") = True
fld2.Properties("Required") = True
fld3.Properties("Required") = True
fld4.Properties("Required") = True
fld5.Properties("Required") = True
dbs.Execute "CREATE UNIQUE INDEX idxTeamNameID ON [1GBBU Teams]([Team
Name])"
End Sub
If you have a problem with DAO, make sure you've set a reference to it.
While in the VB Editor, select Tools | References. If Microsoft DAO 3.6
Object library isn't among the checked ones at the top of list, scroll
through the list until you find it, select it, then back out of the dialog.

Signature
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no private e-mails, please)
> Doug,
>
[quoted text clipped - 98 lines]
>> > Name])"
>> > End Sub
Douglas J. Steele - 13 Jan 2008 13:41 GMT
Just realized you can't do this using ADOX either. You need to use DAO.

Signature
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no private e-mails, please)
> Hold on, I just looked a little closer, and you're mixing DAO and ADO in
> there. You need to use strictly DAO. ADO is not capable of doing what
[quoted text clipped - 145 lines]
>>> > Name])"
>>> > End Sub
Pele - 13 Jan 2008 16:26 GMT
Doug,
Thank you very much....your suggestion was very correct. The DAO 3.6 Object
Library was not checked and hence my initial problem.
By the way, you were the one that had given me that same code about 2yrs ago
but I guess when my Access copy was refreshed, it did not enable the DAO 3.6
Object Library.
Once again, a million thanks to you.
Pele
> Hold on, I just looked a little closer, and you're mixing DAO and ADO in
> there. You need to use strictly DAO. ADO is not capable of doing what you're
[quoted text clipped - 144 lines]
> >> > Name])"
> >> > End Sub
Douglas J. Steele - 13 Jan 2008 16:40 GMT
Glad you got it working.
Incidentally, if your intent is to set all the fields to Required, the
following would be simpler:
Sub FixTeam_table()
Const conTable = "1GBBU Teams"
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Set dbs = DBEngine(0)(0)
Set tdf = dbs.TableDefs(conTable)
For Each fld In tdf.Fields
fld.Properties("Required") = True
Next fld
dbs.Execute "CREATE UNIQUE INDEX idxTeamNameID ON [1GBBU Teams]([Team
Name])"
End Sub
And something I just noticed. Year is not a good name for a field. It's a
reserved word, and reserved words should never be used for your own
purposes. For a good discussion of names to avoid, see what Allen Browne has
at http://www.allenbrowne.com/AppIssueBadWord.html

Signature
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no private e-mails, please)
> Doug,
>
[quoted text clipped - 169 lines]
>> >> > Name])"
>> >> > End Sub
Jamie Collins - 14 Jan 2008 14:37 GMT
On Jan 13, 12:09 pm, "Douglas J. Steele"
<NOSPAM_djsteele@NOSPAM_canada.com> > > You need to use strictly DAO.
ADO is not capable of doing what you're
> trying to make it do.
If you think that you cannot use ADO to ensure a column is NOT NULL or
execute a CREATE INDEX statement then think again.
Jamie.
--