我将Access数据库分为前端和后端。
我需要以编程方式修改与表中某个字段关联的属性的值。我确实记得在几年前实现了类似的东西,但那是形式。
似乎表的属性只能在设计时设置;任何使用代码(myField.Properties("InputMask").Value = "000000"
)修改值的尝试都会导致错误。
总而言之,大约80个批次中有大约40或50个表具有必须更改的特定类型字段,所以我宁愿使用代码而不是手动。有人可以建议使用VBA这样做的方法吗?
目前我已经考虑过使用CurrentDb.Execute sqlString
删除并重新创建字段,但是如果可能的话,我想保留InputMask
属性。
原始数据库是2002/3格式,但我在Access 2010中对此进行了编辑。
答案 0 :(得分:1)
我得到了以下代码。它将更改指定表和字段的InputMask ....
Option Compare Database
Option Explicit
Sub Test_It()
Dim WGD
WGD = Resize_And_AddInputMask("Table3", "SomeNbr")
End Sub
' Modified version of code found at: http://www.tek-tips.com/viewthread.cfm?qid=1708626
Public Function Resize_And_AddInputMask(ByVal someTableName As String, ByVal someZCField As String)
Dim db As DAO.Database
Dim td As DAO.TableDef
Dim fd As DAO.Field
Dim prp As DAO.Property
Set db = CurrentDb
Set td = db.TableDefs(someTableName)
Set fd = td.Fields(someZCField)
fd.Properties("InputMask") = "000099"
fd.Properties.Refresh
db.TableDefs.Refresh
Set prp = Nothing
Set fd = Nothing
Set td = Nothing
Set db = Nothing
End Function