1
以下の関数が '.Append fld'を実行すると、エラー3057が生成されます。完全修飾名が必要ですが、このメソッドは私にエスケープしていると思われます。この関数を呼び出すsubはstrTableName "tbl_elements"を通り過ぎていますが、この関数では十分ではありません。操作がリンクテーブルでサポートされていない
リンクテーブルに正常に到達した別のビットのコードをフィッティングしようとしました。 HansUpの助けを借りて
Public Function CreateAutoNumberField(ByVal strTableName As String, ByVal strFieldName As String) As Boolean
On Error GoTo Err_CreateAutoNumberField
Dim db As DAO.Database
Dim fld As DAO.Field
Dim tdef As DAO.TableDef
Set db = Application.CurrentDb
Set tdef = db.TableDefs(strTableName)
Set fld = tdef.CreateField(strFieldName, dbLong)
With fld
.Attributes = .Attributes Or dbAutoIncrField
End With
With tdef.Fields
.Append fld
.Refresh
End With
CreateAutoNumberField = True
Exit_CreateAutoNumberField:
Set fld = Nothing
Set tdef = Nothing
Set db = Nothing
Exit Function
Err_CreateAutoNumberField:
CreateAutoNumberField = False
With Err
MsgBox "Error " & .Number & vbCrLf & .description, vbOKOnly Or vbCritical, "CreateAutoNumberField"
End With
Resume Exit_CreateAutoNumberField
End Function