导入Excel文件以访问表单

我已经用尽了所有的资源,我可以find和之前,我确定我的Access数据库已损坏我想发布这个问题:

我正在开发一个工具,它将从一个Excel表格中导入数据,并将其分发给几百个人。 我创build了一个Access表单并行,我试图创build一个macros,将自动填充Access表单字段的Excel表单中的数据。

这是我正在使用的代码:

Sub Import_Click() Dim objDialog As Object Dim CEtarget As Form Dim CEfile As String Set CEtarget = Forms("Data Entry") Set CEsource = Excel.Application Set objDialog = Application.FileDialog(3) With objDialog .AllowMultiSelect = False .Title = "Select Form" .filters.Clear .filters.Add "*.xlsm; *.xlsx; *.xls", "*.xlsm; *.xlsx; *.xls" .Show If .SelectedItems.Count = 0 Then Exit Sub Else CEfile = .SelectedItems(1) CEsource.Workbooks.Open (CEfile) CEsource.Visible = True End If CEtarget.FirstName.Value = CEsource.Range("B14") End Sub 

错误发生在以下string:

 Set CEtarget = Forms("Data Entry") 

我收到以下错误:

运行时错误'-2146500594(800f000e)':对象'Forms'的方法'Item'失败

不知道什么可能是错的。 我确实有一个代码工作,但不知何故,我开始看到这个错误信息。

编辑 :我testing了代码,而窗体是在devise视图,并没有任何问题执行。 在窗体和布局视图中,错误提示仍然存在。

为了将来的参考, 反编译数据库通常会解决这个问题。 当你进行大量的vba开发时,访问通常会得到这些“轻微的破坏”。 我认为这与它存储二进制文件的方式有关。 反编译后一定要紧凑并修复。 这将删除任何剩余的垃圾二进制文件。 他们在一段时间后导致文件大小膨胀。

我从来没有弄清楚是什么问题,但我做了一个表格的副本,并引用那个。 之后,代码工作正常。