Итак, я создал форму (доступна только для тех, кто имеет ID уровня безопасности разработчика), которая позволяет мне вводить оператор SQL в несвязанное текстовое поле и выполнять.
Если оператор не выполняетсяон заполняет непрерывную подчиненную форму в форме ошибочной ошибкой / описанием, но после быстрого me.refresh он переходит к первой записи, и независимо от того, что я пытаюсь, я не могу заставить ее перейти к последней записи.
Я пробовал:
Me.sub_ConsoleRTN.Form.ConsoleRTN.MoveLast
, а также:
Me.sub_ConsoleRTN.Form.ConsoleRTN.SetFocus
DoCmd.RunCommand accmdRecordsGoToLast
, и они работают без ошибок, но не показывают последнюю запись
Вот полный код:
Private Sub ExecuteSQL_Click()
On Error GoTo ErrorHandler
Dim strSQL As String
Dim myCI As String
myCI = txt_sqlConsole.Value
If myCI = "" Then
strSQL = "INSERT INTO tbl_ADM_Console " & "(ErrNumber,ErrDescription) VALUES" & "(101, 'Cannot exectute blank statement')"
CurrentDb.Execute strSQL, dbFailOnError
Me.txt_actionconf.Value = "Action cancelled - compile error"
Me.Refresh
Me.sub_ConsoleRTN.Form.ConsoleRTN.SetFocus
DoCmd.RunCommand acCmdRecordsGoToLast
Else
strSQL = myCI
CurrentDb.Execute strSQL, dbFailOnError
Me.txt_actionconf.Value = "Action completed"
Me.Refresh
DoCmd.GoToRecord , , acLast
End If
Exit_ExecuteSQL: ' Label to resume after error.
Exit Sub ' Exit before error handler.
ErrorHandler: ' Label to jump to on error.
Call logConsoleErrors(Err.Number, Err.Description, "Console()")
Me.txt_actionconf.Value = "Action cancelled - compile error"
Me.Refresh
Resume Exit_ExecuteSQL
End Sub
Как всегда, я, вероятно, упускаю что-то очень простое, но источники в Интернете вроде того, что "Me.sub_ConsoleRTN.Form.ConsoleRTN.SetFocus DoCmd.RunCommand accmdRecordsGoToLast" является правильным методом дляпопробовать