Я пытаюсь вывести данные столбца из таблицы в таймер в VBA. В моей таблице у меня есть IntervalSeconds как число. Я пытаюсь запросить количество секунд, чтобы определить, как долго нужно устанавливать счетчик.
Dim timeRemaining As Long (Form Variable) - used in multiple functionss
Private Sub Form_Open(Cancel As Integer)
Dim strSQL As String
Me.Visible = False
strSQL = "SELECT AccessControl.IntervalSeconds FROM AccessControl WHERE AccessControl.DatabaseName = '" & CurrentDb.Name & "'"
timeRemaining = CLng(strSQL)
DoCmd.OpenForm ("frmForceLogout")
End Sub
Каждый раз, когда я запускаю форму, я получаю ошибку несоответствия типов, когда нажимаю строку timeRemaining = cLng(strSQL). Я что-то пропустил?
Я не понимаю причин отрицательных голосов по этому вопросу. Оставив это в стороне, вы понимаете, почему вы получаете эту ошибку с CLng(strSQL)
? Вы получите ту же ошибку, если CLng("Hello World")
--- подадите текстовую строку, которую нельзя привести к длинному целому числу. CLng("27")
не вызовет ошибку.
Вы можете использовать DLookup
для таких простых задач:
Private Sub Form_Open(Cancel As Integer)
Dim Criteria As String
Me.Visible = False
Criteria = "DatabaseName = '" & CurrentDb.Name & "'"
timeRemaining = DLookup("IntervalSeconds", "AccessControl", Criteria)
DoCmd.OpenForm ("frmForceLogout")
End Sub
Вы пытаетесь преобразовать строку
SELECT AcessControl....
вLong
?