首页 > 解决方案 > 当 TempVars 存储对象时,为什么我得到一个 TempVars Only Store Data not Objects

问题描述

我最近自愿完成了一个 Access 数据库,一位同事在她离开另一份工作之前已经完成了大约 99% 的工作。该数据库被用作图书馆签入/签出数据库。

有一个“单击时”操作按钮运行用 VBA 编写的事件过程。单击操作按钮后,我收到错误“TempVars 只能存储数据,它们不能存储对象”。

我没有任何使用 VBA 或 Access 的经验,所以我不知道有什么问题或如何修复。任何帮助将不胜感激

Private Sub Action_Click()
On Error GoTo Action_Click_Err

' _AXL:<?xml version="1.0" encoding="UTF-16" standalone="no"?>
' <UserInterfaceMacro For="Owner" xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><Statements><ConditionalBlock><If><Condition>IsNull([Screen].[ActiveControl])</C
' _AXL:ondition><Statements><Action Name="StopMacro"/></Statements></If></ConditionalBlock><Action Name="OpenForm"><Argument Name="FormName">Contact Details</Argument><Argument Name="WhereCondition">="[ID]=" &amp; [Screen].[ActiveControl]</Argument><Argum
' _AXL:ent Name="WindowMode">Dialog</Argument></Action><Action Name="OnError"/><Action Name="Requery"><Argument Name="ControlName">=[Screen].[ActiveControl].[Name]</Argument></Action></Statements></UserInterfaceMacro>
If (IsNull(ID)) Then
    Beep
    Exit Sub
End If
TempVars.Add "ItemID", ID
If (Nz([Contact Name]) <> "") Then
    DoCmd.OpenForm "Check In", acNormal, "", "[Transactions].[Asset]=[TempVars]![ItemID] And [Transactions].[Checked In Date] Is Null", acEdit, acDialog
End If
If (Nz([Contact Name]) = "") Then
    DoCmd.OpenForm "Check Out", acNormal, "", "1=0", acEdit, acDialog
End If
DoCmd.Requery ""


Action_Click_Exit:
    Exit

 Sub

Action_Click_Err:
    MsgBox Error$
    Resume Action_Click_Exit

End Sub

标签: sqlvbams-access

解决方案


来自微软文档:

TempVar 对象只能存储文本或数字数据。TempVar 对象不能存储对象。

来源:TempVar 对象(访问)

如果您确实需要将对象存储在内存中,则需要提出不同的解决方案。


推荐阅读