
Create Field with Input Mask in DAO
I think you need to append the fld to the Fields collection first. The
following code worked on my Test database (A97).
***Code starts***
Public Sub AddField()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim prp As DAO.Property
Dim idx As DAO.Index
Dim strMask As String
strMask = ">aaaaaaaa"
Set db = CurrentDb()
Set tdf = db.TableDefs("tblTest1")
With tdf
Set fld = .CreateField("altCode", dbText, 8)
.Fields.Append fld
On Error Resume Next
fld.AllowZeroLength = True
fld.Properties("InputMask") = strMask
If Err.Number <> 0 Then
Set prp = fld.CreateProperty("InputMask", dbText, strMask)
fld.Properties.Append prp
End If
Set idx = .CreateIndex("idxaltCode")
With idx
.Fields.Append .CreateField("altCode")
End With
.Indexes.Append idx
.Fields.Refresh
.Indexes.Refresh
End With
Set idx = Nothing
Set prp = Nothing
Set fld = Nothing
Set tdf = Nothing
Set db = Nothing
End Sub
***Code ends***
HTH
Van T. Dinh
Quote:
> Trying to create a field with an input mast in dao. Here is my code:
> strMask = ">aaaaaaaa"
> Set tdf = db.TableDefs("Contacts")
> With tdf
> Set fld = .CreateField("altCode", dbText, 8)
> On Error Resume Next
> fld.Properties("InputMask") = strMask
> If Err.Number <> 0 Then
> Set prp = fld.CreateProperty("InputMask",
> dbText, strMask)
> fld.AllowZeroLength = True
> fld.Properties.Append prp
> End If
> .Fields.Append fld
> Set idx = .CreateIndex("idxaltCode")
> With idx
> .Fields.Append .CreateField("altCode")
> End With
> .Indexes.Append idx
> .Fields.Refresh
> .Indexes.Refresh
> End With
> It does everything I want it to do except set the input mask. Help
> anyone?
> Richard