“您输入的表达式要求控件位于活动窗口中”错误-找不到它的来源

时间:2019-01-18 15:22:08

标签: database vba ms-access

我正在尝试创建一个控件,该控件从一种形式移到另一种形式,并转到新表单上的特定记录。但是我遇到了一些奇怪的错误,这些错误对我来说并没有多大意义(代码明智)。另外,即使我从对象资源管理器窗口中打开表单frmService,也不会收到错误消息,但是表单完全空白。

Image of the error and blank screen
Image of the form and control being used to open frmService

最初,第一个表单(frmWorkOrders)通过子表单是另一种表单的一部分。但是我遇到了一些无法修复的错误,迫使我创建了一个全新的表单,然后将所有字段和数据移了过来。它本身可以完美运行。但是,当我尝试使用frmService上的控件打开frmWorkOrders时,打开frmService时出现错误,提示:

  

您输入的表达式要求控件处于活动状态   窗口。

打开和关闭表单的代码非常简单,所以我不确定为什么会出错。

这是发生错误的frmService上的所有代码。

Option Compare Database

Private Sub cmdClose_Click()
    DoCmd.Close acForm, "frmService"
    DoCmd.OpenForm "frmWorkOrders", acNormal
End Sub

Private Sub cmdComputer_Click()
 Me.Computer.SetFocus
End Sub

Private Sub cmdFirst_Click()
 Me.FirstStage.SetFocus
End Sub

Private Sub cmdHPSPG_Click()
 Me.HPSPG.SetFocus
End Sub

Private Sub cmdInflator_Click()
 Me.Inflator.SetFocus
End Sub

Private Sub cmdOcto_Click()
 Me.Octo.SetFocus
End Sub

Private Sub cmdSecond_Click()
 Me.SecondStage.SetFocus
End Sub

Private Sub Command86_Click()
 Me.Computer.SetFocus
End Sub

下面是打开frmService和关闭frmWorkOrders的代码。

Private Sub cmdService_Click()
On Error GoTo cmdService_Click_Err

    DoCmd.OpenForm "frmService", , , "tblRegSR.[ID] = " & Me!txtID
    DoCmd.SearchForRecord , "frmService", acFirst, "[WorkOrderID] = " & Me.txtID
    DoCmd.Close acForm, "frmWorkOrders"

cmdService_Click_Exit:
    Exit Sub

cmdService_Click_Err:
    MsgBox Error$
   Resume cmdService_Click_Exit
End Sub

以防万一是一个SQL问题,这是frmService的SQL语句。

SELECT tblRegSR.*, [tblCustomers].[FName] & " " & [LName] AS FullName, tblWorkOrder.Task, "WD0" & [tblWorkOrder]![ID] AS WONumber, tblFirstSR.*, tblHPSPGSR.*, tblInflatorSR.*, tblOctoSR.*, tblSecondSR.*, tblComputerSR.*
FROM ((((((tblCustomers RIGHT JOIN (tblWorkOrder INNER JOIN tblRegSR ON tblWorkOrder.ID = tblRegSR.ID) ON tblCustomers.ID = tblWorkOrder.CustomerID) 
INNER JOIN tblComputerSR ON tblRegSR.ID = tblComputerSR.ServiceRecordID) 
INNER JOIN tblFirstSR ON tblRegSR.ID = tblFirstSR.ServiceRecordID) 
INNER JOIN tblHPSPGSR ON tblRegSR.ID = tblHPSPGSR.ServiceRecordID) 
INNER JOIN tblInflatorSR ON tblRegSR.ID = tblInflatorSR.ServiceRecordID) 
INNER JOIN tblOctoSR ON tblRegSR.ID = tblOctoSR.ServiceRecordID) 
INNER JOIN tblSecondSR ON tblRegSR.ID = tblSecondSR.ServiceRecordID;

0 个答案:

没有答案