ОК, поэтому моя база данных изначально была разработана в Access 2003. На одной из машин я использую Access 2007 Runtime, поскольку на машине нет Office какого-либо вида.Я пытаюсь найти решение, используя последнюю версию Access в Office 365. Я не могу напрямую получить доступ к текущей версии, работающей в Access 2003 или Access 2007 Runtime.Я не могу изменить версии на других машинах, так как они находятся в тюрьме и не имеют интернета.Это работает без проблем, запущенных в 2003 году, только 2007 год является проблемой.Так как меня там нет и у меня есть только 365. Мне нужно решение, которое будет работать для всех версий.
Используемые функции находятся в отдельных модулях и не имеют фактической формы.В форме установлен модуль, необходимый для доступа к объектам.Функция состоит в том, чтобы добавить сеанс для заключенного, чтобы посетить библиотеку.Это должно быть проверено, чтобы убедиться, что есть место в выбранное время и день недели, а также индивидуальные ограничения сеанса.
Проблема, с которой я сталкиваюсь, заключается в том, что версии 2007 и 365 не могут получить выбранные данные из списка (время в виде строки) и группы параметров (DayofWeek как число) для выполнения запроса SQL вместо него.ничего не вставляет и SQL не удается, утверждая, что есть дополнительный) в моем коде.Затем SQL используется для создания набора записей DAO.Это является частью проверки данных, чтобы убедиться, что лимиты не достигнуты.
Я трижды проверил строку, отправленную CO_GetSessionDetail, чтобы убедиться, что у меня нет лишних).Он думает, что это так, поскольку в строке справа нет ничего от my =.Я проверил ссылку на форму и несвязанные поля, и все они совпадают.Он не компилирует никаких проблем.
В 2003 году нет проблем ...
Код приведен ниже.
Function CO_NewCallout() As Boolean
...
' Get Session ID --------------------------------- '
With Form_f_COs_IM
iSession = CO_GetSessionDetail( _
"SessionID", _
"(((t_CO_Sess.DayOfWeek) = " & .CO_Add_DayOfWeek & ") AND " & _
"((t_CO_Sess.tSession) = '" & .CO_Add_tSession & "'))" _
)
If iSession = 0 Then
GoTo CO_NewCallout_Exit
End If
End With
...
End Function
Function CO_GetSessionDetail(stfield As String, stwhere As String) As Variant
'On Error Resume Next
' Variable Declerations -------------------------- '
Dim db As Database
Dim rst As DAO.Recordset
Dim stSQL As String
' Set Variables ---------------------------------- '
Set db = CurrentDb
If stwhere <> "" Then
stwhere = "WHERE " & stwhere
End If
stSQL = _
"SELECT * " & _
"FROM t_CO_Sess " & stwhere
Set rst = db.OpenRecordset(stSQL, dbOpenDynaset)
' Get Session ID --------------------------------- '
With rst
If Not .EOF Then
CO_GetSessionDetail = .Fields(stfield)
Else
CO_GetSessionDetail = 0
End If
End With
' Close Recordset t_CO_Sess ---------------------- '
rst.Close
Set rst = Nothing
End Function
Access 2003 - я получаю уникальный идентификаторСеанс
Access 2007 и 365 - не удается завершить функцию
Дайте мне знать, поможет ли еще код.