希望有人能帮助我。
在frmMain上,我有一个列表框(lstAuthor)和一个组合框(cboAuthor)。两者的RowSource是查询qryListAuthor。两者都有两列,authorID和AuthorName,绑定列是col 1。
当我开始在组合框中输入作者姓名时,我希望它更新,当我正在寻找的作者填写我正在键入的当前行时,我想按回车并对该特定的lstAuthor更新记录,并被选中。
另一个名为lstBook的列表框,用于更新和显示在lstAuthor中选择的作者所写的书籍。如果我向下滚动lstAuthor中的作者列表并选择一个。
,目前正在发生这种情况不在列表中:
如果我在cboAuthor中输入作者姓名,并且作者不存在,我需要按Enter键并打开一个名为frmAddAuthorFly的表单。在我添加了作者并关闭表单之后,我需要使用新作者更新cboAuthor和lstAuthor,以及刚刚添加的作者,以便在lstAuthor中进行选择。并且lstBook也要更新。 frmAddAuthorFly只有三个字段; authorID,authorName和authorCategory。
我浪费了相当多的时间,所以也许有人可以给出解决方案。非常感谢......
答案 0 :(得分:0)
今天花了一点时间,这就是我想出的。似乎工作正常,但如果有人发现任何明显的问题,请随意提供替代方案。
在cboAuthor的NotInList事件中
Private Sub cboAuthor_NotInList(NewData As String, Response As Integer)
On Error GoTo errline
Dim MsgBoxAnswer As Variant
Response = acDataErrContinue
MsgBoxAnswer = MsgBox("Do you want to add a new author?", vbYesNo, "Add New Author")
If msboxanswer = vbNo Then
Me.cboAuthor = Null
DoCmd.GoToControl "cboAuthor"
GoTo exitline
Else
txtHidden = "addOk"
DoCmd.OpenForm ("frmAddAuthorFly")
DoCmd.GoToRecord , , acNewRec
Forms![frmaddauthorfly]![AuthorName] = NewData
Me.cboAuthor = Null
DoCmd.GoToControl "authorcategory"
End If
exitline:
Exit Sub
errline:
Exit Sub
'Select Case Err.Number
End Sub
我已经向frmAddAuthorFly添加了cmdButton并包含以下代码:
Private Sub cmdClose_Click()
On Error GoTo errline
If Forms![frmmain]![txtHidden] = "addok" Then
Forms![frmmain]![cboAuthor].Requery
Forms![frmmain]![LstAuthor].Requery
Forms![frmmain]![LstAuthor] = Me.AuthorID
Forms![frmmain]![txtHidden] = "AddDone"
DoCmd.Close acForm, "frmAddAuthorFly"
Forms![frmmain]![cboAuthor].Requery
Forms![frmmain]![LstAuthor].Requery
Forms![frmmain].[LstAuthor].SetFocus
Else
MsgBox "txt hidden is not addok"
DoCmd.Close acForm, "frmaddauthorfly"
End If
errline:
Exit Sub
End Sub
我想做的一件事是,在我将重点放在新作者上之后,只需在列表框中添加记录就可以点击它。不只是突出显示,但我想我可以点击它......