MS Access 在子窗体的组合框中 select 下拉后在主窗体中填写 ID
MS Access Fill in ID in the Main Form after select drop down from combo box in Subform
我也有类似的情况link:MS Access automatically fill id in main form when data is entered in subform
简而言之,我希望在子窗体中输入数据时能够在主窗体中创建自动编号 ID。这可以在子表单中使用此代码:
Private Sub Form_Dirty(Cancel As Integer)
With Me.Parent
If IsNull(!MainFormID) Then
' Change any field to create the parent record
.Description = "Test"
' Save changes on the parent form.
.Dirty = False
End If
End With
End Sub
我粘贴了 VBA 代码并创建了名为 "Description" 的附加字段,用于捕获主表单中的更改。
如果我在子表单中填写文本框,这会起作用。但是,如果我 select 来自组合框的项目它不起作用。
假设我的组合框是 cboSelectItem,我也尝试将事件更改为以下但不可用。
Private Sub cboSelectItem_BeforeUpdate(Cancel As Integer)
是否可以更改代码以便能够 运行 组合框并仍然保留我的 selection 从下拉列表中?
可以拦截sub form frame
的On Enter
事件,查看"parent"表单是否有活动记录。这样,在向"parent"窗体添加新记录时,仍然可以保证父窗体与子窗体的关系。
在主窗体 select 上 Sub form frame
对象(通常 select link master fields \ link child fields
。那个框架应该有两个事件,On Enter & On Exit
。
使用On Enter
事件检查"parent"表单是否有记录。 请注意,您已经在父表单中,因此 parent form = current form
。
活动应如下所示:
'This code should appear in the parent form's code page
Private Sub SubFormName_Enter()
On Error Resume Next
If (Me.NewRecord) Then
Me!Description = "test"
Me.Dirty = False
End If
End Sub
当您输入子表单并且父表单没有记录时,这应该有效。如果这样做是个好主意,则由您决定。
我也有类似的情况link:MS Access automatically fill id in main form when data is entered in subform
简而言之,我希望在子窗体中输入数据时能够在主窗体中创建自动编号 ID。这可以在子表单中使用此代码:
Private Sub Form_Dirty(Cancel As Integer)
With Me.Parent
If IsNull(!MainFormID) Then
' Change any field to create the parent record
.Description = "Test"
' Save changes on the parent form.
.Dirty = False
End If
End With
End Sub
我粘贴了 VBA 代码并创建了名为 "Description" 的附加字段,用于捕获主表单中的更改。 如果我在子表单中填写文本框,这会起作用。但是,如果我 select 来自组合框的项目它不起作用。
假设我的组合框是 cboSelectItem,我也尝试将事件更改为以下但不可用。
Private Sub cboSelectItem_BeforeUpdate(Cancel As Integer)
是否可以更改代码以便能够 运行 组合框并仍然保留我的 selection 从下拉列表中?
可以拦截sub form frame
的On Enter
事件,查看"parent"表单是否有活动记录。这样,在向"parent"窗体添加新记录时,仍然可以保证父窗体与子窗体的关系。
在主窗体 select 上 Sub form frame
对象(通常 select link master fields \ link child fields
。那个框架应该有两个事件,On Enter & On Exit
。
使用On Enter
事件检查"parent"表单是否有记录。 请注意,您已经在父表单中,因此 parent form = current form
。
活动应如下所示:
'This code should appear in the parent form's code page
Private Sub SubFormName_Enter()
On Error Resume Next
If (Me.NewRecord) Then
Me!Description = "test"
Me.Dirty = False
End If
End Sub
当您输入子表单并且父表单没有记录时,这应该有效。如果这样做是个好主意,则由您决定。