我正在尝试创建一个控件,该控件从一种形式移到另一种形式,并转到新表单上的特定记录。但是我遇到了一些奇怪的错误,这些错误对我来说并没有多大意义(代码明智)。另外,即使我从对象资源管理器窗口中打开表单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;