这应该是一个快速的访问兽医,但从尝试不同的属性和谷歌搜索,我无法解决它:
我表单上的组合框不允许我选择项目/值.我点击它,它已正确填充,但我无法选择任何项目.此组合框的控件源设置为查询(表单所基于的)查询中的表中的字段.此组合框的行源设置为一个表,该表定义允许的选择(例如"1","2","3","4"或"5").所以,我想将数据限制为仅仅在组合框的行源中指定的项目 - 这是我的解决方案.
表单设置为允许编辑,添加等.组合框控件未设置为"锁定".
想到任何解释/解决方案吗?
编辑:如果控件是一个文本框,这也适用 - 它必须是控件源的错误?
我在MS Access 2010上遇到了令人沮丧的问题,我现在在这个问题上有资格作为一个bug.在尝试了所有可能的解决方法之后,我没有想法并且依赖于你.
巨大的Access Access 2010应用程序,具有25k行VBA和> 50个表单.它有一个客户端服务器体系结构,其前端已编译,网络上有Access后端.它连接到二十几个不同的数据库(Oracle/SQL Server/Sybase IQ).
有时,当我将ADODB记录集分配给子表单时,其数据不会显示在绑定字段中.我#Name?到处都是
数据就在那里.我可以debug.print,我可以在Watches浏览器中看到它,我可以在使用代码循环记录集对象时读取或操作它.它只是没有出现在子表单中.
它可以在几个月内完美地工作,突然一个表格将开始出现这个问题而没有任何明显的原因(即使在我没有改变的表格上也可能发生).当它发生时,它适用于所有用户,所以这在前端accdb/accde中确实是错误的.
该问题与特定的DBMS /驱动程序无关.Oracle或Sybase数据可能会发生这种情况.
我创建了自己的类,抽象出与ADO连接和查询相关的所有内容,并在各处使用相同的技术.基于它,我有十分之几的表格,而且大多数表现都很完美.
我在我的应用程序的几个部分中遇到了这个问题,特别是在具有大量子表单和代码的高度复杂的表单中.在这个主表单上,一些子表单有问题,而其他子表单没有.它们具有完全相同的参数.
这就是我填充表单记录集的方式:
Set RST = Nothing
Set RST = New ADODB.Recordset
Set RST = Oracle_CON.QueryRS(SQL)
If Not RST Is Nothing Then
Set RST.ActiveConnection = Nothing
Set Form_the_form_name.Recordset = RST
End If
Run Code Online (Sandbox Code Playgroud)
调用的代码Oracle_CON.QueryRS(SQL)是
Public Function QueryRS(ByVal SQL As String, Optional strTitle As String) As ADODB.Recordset
Dim dbQuery As ADODB.Command
Dim Output As ADODB.Recordset
Dim dtTemp As …Run Code Online (Sandbox Code Playgroud) 背景:
拆分访问数据库,最多两个用户.后端位于映射驱动器上的两台计算机之一,前端是本地的.计算机通过wifi连接到路由器.(我试图让他们通过电缆连接电脑失败)
编辑:此问题现在发生在单个用户环境中.
问题:
这只发生在一个特定的形式上.它的基础表有一个多值字段.
问题1:我们的情况是编辑一个字段,但只要焦点移动到另一个字段,编辑就会恢复为原始值.
问题2:编辑一个字段时,其他一些字段将获取先前显示的记录的值.
注意:从一个记录到另一个记录的导航操作如下:
Me.RecordsetClone.FindFirst "ID = " & cmbLocateRecipientID
Me.Bookmark = Me.RecordsetClone.Bookmark
Run Code Online (Sandbox Code Playgroud)
问题只发生在偶然.
这在Access方面是一种非常奇怪的行为,因此当用户首次报告问题时,我确信他们错误地将信息输入到另一条记录中.但是,他们已经向我展示了现场发生的问题.
关闭并重新打开表单可以解决问题.但是,它们显然不能以这种方式工作.
我无法在我的开发机器上重现这个问题.
我编写了一个表单,在文本输入文本框时异步执行查询,但是我有点随意地抛出以下错误:"除非控件具有焦点,否则无法引用控件的属性或方法."
直接相关的代码是:
Dim UpdateRequested As Boolean
Dim qryText As String
.
.
.
Private Sub txtBox_Change()
qryText = txtBox.Text
UpdateRequested = true
End Sub
Run Code Online (Sandbox Code Playgroud)
省略号中的一些位置是处理动态加载ADODB记录集,填充本地表和刷新子表单的代码.但是,即使我禁用此代码,问题仍然存在:有时我得到错误.有时我没有.
通过关闭数据库并重新打开它似乎是持久的.每次它再次开始工作时,都是因为我一直在调试器中使用代码,但我不确定究竟是什么导致它神奇地"正常工作"或导致它根本无法工作的原因.
为了让事情更令人费解,我添加了几个简单的事件处理程序:
Private Sub txtBox_GotFocus()
MsgBox "Got focus"
End Sub
Private Sub txtBox_LostFocus()
MsgBox "Lost focus"
End Sub
Run Code Online (Sandbox Code Playgroud)
我运行表格.我点击测试框.我收到"有焦点"的消息.一旦我输入,我就会看到如上所述的错误.如果我重新打开表单,我可以在有问题的文本框(它本身是未绑定的)和子表单中的绑定文本框之间单击,并且可以看到"获得焦点"和"丢失焦点"消息.此外,显示一个当前值为"Screen.ActiveControl.Name"的消息框显示了访问Text属性之前的预期名称.
今天早上,我收到了这个错误
Error accessing file. Network connection may be lost
无论我在任何形式上做什么.所以我打开了一个空白数据库并导入了一切.发生了一些错误,但它表示导入成功.我能够再次打开我的表格.然后我回去了旧版本,然后当我尝试打开数据库时出现此错误
The database cannot be opened because the VBA project contained in it cannot be read
Run Code Online (Sandbox Code Playgroud)
即使我在第一次错误之前做的备份现在就说了.
我尝试再次导入,导入时出错.
我现在变得紧张,请告诉我有办法解决这个问题
谢谢
我有一个复杂的MS Access 2013数据库,具有数十种形式。在其中一种形式上,我有一个带有vba过程的按钮,该按钮可以从MS SQL(ADODB)返回值并将其放入文本框。
问题是,每当我单击此按钮时,它就会进入编译菜单,好像有一个breakpoint,但实际上没有breakpoint。当然没有错误/ MsgBoxes,如果我单击F5或F8,它会很好。有谁的主意,可能是什么问题?
我有一个带有窗体的访问数据库,其中一个窗体未打开。我双击它,我试图在设计模式下打开。没发生什么事。没有错误消息,但是什么也没有发生。
有人遇到过这个问题吗?
对不起,我现在实际上遇到了错误:
该错误表明没有足够的内存来打开它或达到此目的的东西。
上周我在程序崩溃时修改了访问2010 db中的两个模块的部分,并且每次我尝试打开db时都会崩溃.我能够创建一个新数据库并从损坏的数据库中导入表和查询,但是当我尝试导入表单/宏/模块时,新数据库也会开始崩溃.我保留每日备份,但最终失去了几个小时的工作量.这种情况上周发生了两次,每次MS Access都会在没有警告的情况下崩溃并且VBA无法恢复.
该功能按预期工作,直到db崩溃似乎在某个未知点.我的VBA代码一定存在某种问题,因为这只是在我上周开始修改模块时才开始发生,但我无法确定它,因为在没有执行任何操作时实际发生了崩溃.即在保存期间.
有没有人知道是否可以将VBA导出而无需将其导出到另一个数据库?即导出它而不必使用MS Access这样做.在相关的说明中,是否有人创建了一个库,将查询定义,表模式和所有VBA导出到文本文件中,我可以将它们放入源代码管理中?
谢谢.