Я пытаюсь создать элемент управления, который перемещается из одной формы в другую и переходит к определенной записи в новой форме. Однако я получаю некоторые странные ошибки, которые просто не имеют большого смысла для меня (мудрый код). Кроме того, даже если я открою форму frmService
из окна проводника объектов, я не получу сообщение об ошибке, но форма откроется полностью пустой.
![Image of the error and blank screen](https://i.stack.imgur.com/hTkMB.png)
![Image of the form and control being used to open frmService](https://i.stack.imgur.com/zjS9m.png)
Первоначально первая форма (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, вот оператор SQL для frmService
.
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;