我需要将我的 Access 2007 项目移动到 Access 2010。除了我拥有的这一点 VBA 代码之外,大部分覆盖工作都很好。
这个特殊的 VBA 代码从 PDF 表单加载值,然后将这些值分配给表单控件。这允许用户手动输入他们的数据,或者让其他人(无法访问托管 Access DB 的网络)填写表格并让其他人为他们导入表格。
当我运行代码时,它会在 Access 2010 中挂起以下代码:
If Title <> "" Then
Me!Title = Title
End If
我得到的错误信息是:
运行时错误“2448”:
你不能给这个对象赋值。
如果有帮助,这里还有一些背景代码:
Dim AcroApp As Acrobat.CAcroApp
Dim theForm As Acrobat.CAcroPDDoc
Dim jso As Object
'Declare variables by Tab used in Form view
'Tab 1
Dim Title, First_Name, Middle_Name, Last_Name, Maiden_Name As String
...
'Form Load
Set AcroApp = CreateObject("AcroExch.App")
Set theForm = CreateObject("AcroExch.PDDoc")
theForm.Open (FileName.Value)
Set jso = theForm.GetJSObject
...
'Tab 1 Data Load
Title = jso.getField("Title").Value
...
'Data Display
MsgBox "Values read from PDF:" & vbCrLf & vbCrLf & "Title:" & Title & vbCrLf & _
...
'Tab 1 Data Populate
If Title <> "" Then
Me!Title = Title
End If
在上面的代码中,我在表单中的值正确显示在消息框中。所以我知道变量正在填充正确的值。此外,我在 VBA 编辑器中引用了 Adobe Acrobat 10.0 类型库。同样,此代码在 Access 2007 下运行良好。
谢谢你的帮助。