我有一个包含4列的组合框(ID,市政府,人造丝(=县),州(=省))。数据源来自3个链接表(市政,人造丝,州)。当我收到NotInList事件并将新的“市政名称”和人造丝ID添加到“市政”表中时,没有明显的原因,选择了下一条记录(焦点移到了下一条记录)。如果我从组合框中选择一个现有条目,则当前记录保持预期。
如果我仅使用标准的2列设置,则我的代码有效。如果将Municipality,Rayon和Oblast合并为一个条目,因此有2列列表,则会遇到相同的问题。我尝试了各种方法来处理在Web上发现的事件,但是问题仍然存在。显然,这与多列设置有关,但是我仍在寻找解决方法。
从NotInList事件以几种不同的形式调用AddMunicipality。 AddMunicipalityQuestion获取有效的人造丝ID。
Public Sub AddMunicipality(newData As String, Response As Integer)
Dim newRayon As Integer
Dim newOblast As Integer
On Error GoTo Error_Handler
If AddMunicipalityQuestion(newData, newRayon) Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO tbl_Municipalities (MunName, Rayon) VALUES (""" & newData & """, " & newRayon & ");"
DoCmd.SetWarnings True
Response = acDataErrAdded
Else
MsgBox "Please select a Municipality from the list.", _
vbExclamation + vbOKOnly, "Unknown Municipality"
Response = acDataErrContinue
End If
Exit_Procedure:
DoCmd.SetWarnings True
Exit Sub
Error_Handler:
MsgBox Err.Number & ", " & Err.Description, vbInformation, "AddMunicipality()"
Resume Exit_Procedure
End Sub
正确添加了新的自治市,但由于某种原因,下一条记录(或新记录)成为焦点。
答案 0 :(得分:0)
您是否尝试过在插入后获取行ID,然后手动对其进行过滤?例如。使用针对多列的查询,并假设RayonID是组合框中的绑定字段:
dim newItemNum as long
newItemNum = dlookup("RayonID","MulticolumnQuery","MunName='" & MunName & "'")
Me.combobox.Value = newItemNum
答案 1 :(得分:0)
我发现了问题:毕竟与多列组合框无关。尽管它是表单上的第一个字段,但它是最后一个制表位,并且表单的Cycle属性设置为“所有记录”。我通过按Tab键输入了新记录,而从菜单中选择的是旧记录。 对所有在这个问题上浪费思想的人表示抱歉。