好了,我的数据库的最初目的是在Access 2003中在一台机器我使用的是Access 2007年运行的机器没有任何味道办公室。我试图找到使用最新版本的Office 365中访问的我不能直接访问无论是现场版的或者Access 2003或Access 2007运行时运行的解决方案。我不能改变在其他机器的版本,因为这些设在一所监狱,没有互联网。这个工作没有在2003上运行的问题,只有2007年是问题。由于我不在,只有365,我需要一个解决方案,适用于所有版本的工作。
正在使用的功能是在单独的模块,并且不实际的形式。的形式被设定为所需要访问的对象为具有模块。该功能是增加一个会话所员参加了图书馆。这必须经过验证,以确保有房的时间和选择的星期几,以及单个会话限制。
我处理的问题是,2007和365项的版本不能从列表框中获取所选择的数据(时间字符串)和选项组(DAYOFWEEK为数字)来完成一个SQL查询,而不是它不插入任何内容和SQL失败自称有在我的代码额外的)。然后,使用SQL创建DAO记录。这是数据的核查,以确保限额的部分没有达到。
我有三重检查发送到CO_GetSessionDetail,以确保我没有额外的)的字符串。它认为它确实是没有什么对我=的右侧的字符串中。我检查了参考的形式和未结合的领域,他们都匹配。它编译没有问题。
没有问题... 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中 - 我得到了会议的唯一ID
Access 2007年和365 - 无法完成的功能
让我知道,如果有更多的代码,将有助于。
使用Office 365编译Access应用程序将无法与Access 2007中运行时或Access 2003中,您必须在之前的版本或等于你选择运行时编译兼容。不幸的是,它是很难得到Access 2003运行,因为它不是可以免费下载。 2007年的运行时间是免费的(这可能解释了为什么您选择安装更新版本)。
您的代码看起来不错,我认为它编译和所有。尽管你的2003数据库应与Access 2007中运行时的工作,它不这样的事实对我说,你有你需要的解决不兼容。
你最好的选择:您的应用程序升级到2007或更高版本,确保它工作在新的版本,然后安装在客户端的机器匹配运行。
参考文献:
Access版本兼容性的一般性讨论:Access 2016/2010 Compatibility, Access 2016
文章越来越Access 2003运行:MS Access Runtime 2003