更新:我做了更多的测试,并禁用了添加的按钮,当我关闭表单时,表单仍将无法关闭连接。 我认为它与表单属性有关,而不是按钮后面的代码,或者按钮代码和表单具有冲突的属性,使表保持打开状态。

关闭VBA中的连接后,我还尝试设置rs = Nothing和db = Nothing。

所以我有一个子表单,被我的主表单调用。 发生这种情况时,我尝试使用下面的VBA代码填充一些控件。 但是,当我关闭子窗体并尝试从Mainform重新访问该子窗体时,它说: cporders2

Private Sub CommandDupe_Click()
Dim db As DAO.Database, rs As DAO.Recordset
Dim strSQL As String

Set db = CurrentDb()
strSQL = "SELECT TOP 1 CPOrders.Cust, Customer.NAME, CPOrders.CP_Ref, CPOrders.Slsman, CPOrders.Date_opn, CPOrders.CPSmall, CPOrders.InvIssu, CPOrders.InvNo, CPOrders.InvDate, CPOrders.DueDate, CPOrders.ETADate, CPOrders.Closed, CPOrders.Cust, CPOrders.Name, CPOrders.BuyerRef, CPOrders.ToCity, CPOrders.ToState, CPOrders.ToCtry, CPOrders.ToPort, CPOrders.Supplier, CPOrders.Origin, CPOrders.Product, CPOrders.GradeType, CPOrders.NoUnits, CPOrders.Pkg, CPOrders.Qty, CPOrders.TotSale, CPOrders.TotCost, CPOrders.GrMargin, CPOrders.[Sale$/Unit], CPOrders.[Cost$/Unit], CPOrders.OceanCost, CPOrders.OceanNotes, CPOrders.BLadingDate, CPOrders.USAPort, CPOrders.FOBCost, CPOrders.FASExportVal, CPOrders.InlandFrt, CPOrders.CommodCode, CPOrders.Notes, CPOrders.ProjCust, CPOrders.ProjValue, CPOrders.ContainerNumber, CPOrders.Vessel, CPOrders.Ord_Terms, CPOrders.Invoice_ID FROM Customer INNER JOIN CPOrders ON Customer.[CUST_#] = CPOrders.Cust ORDER BY CPOrders.Invoice_ID desc;"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
rs.MoveFirst


CP_Ref.Value = rs("CP_Ref")
Slsman.Value = rs("Slsman")
Date_opn.Value = rs("Date_opn")
CPSmall.Value = rs("CPSmall")
InvIssu.Value = rs("InvIssu")
InvNo.Value = rs("InvNo")
InvDate.Value = rs("InvDate")
DueDate.Value = rs("DueDate")
Cust.Value = rs("Cust")
BuyerRef.Value = rs("BuyerRef")
ToCity.Value = rs("ToCity")
ToState.Value = rs("ToState")
ToCtry.Value = rs("ToCtry")
ToPort.Value = rs("ToPort")
Product.Value = rs("Product")
Supplier.Value = rs("Supplier")
GradeType.Value = rs("GradeType")
Origin.Value = rs("Origin")
NoUnits.Value = rs("NoUnits")
Pkg.Value = rs("Pkg")
Qty.Value = rs("Qty")
TotSale.Value = rs("TotSale")
TotCost.Value = rs("TotCost")
OceanCost.Value = rs("OceanCost")
OceanNotes.Value = rs("OceanNotes")
BLadingDate.Value = rs("BLadingDate")
USAPort.Value = rs("USAPort")
FOBCost.Value = rs("FOBCost")
Notes.Value = rs("Notes")
InlandFrt.Value = rs("InlandFrt")
CommodCode.Value = rs("CommodCode")
Vessel.Value = rs("Vessel")
ContainerNumber.Value = rs("ContainerNumber")
ProjCust.Value = rs("ProjCust")
ProjValue.Value = rs("ProjValue")


rs.Close
db.Close

如您所见,我确实关闭了rs和db ...在关闭子窗体后,我还能做些什么来确保关闭此连接? 我需要能够从MainForm持续访问此对象。

提前致谢!!! 我还添加了不会关闭的表单的表单属性 在此处输入图片说明

  ask by Hituptony translate from so

本文未有回复,本站智能推荐:

3回复

如何通过VBA在Access2007中的表单上未提及记录的ID?

我有一个多项目表单,其中没有提到记录的 ID。 我为每一行都有一个按钮,单击该按钮会打开一个包含更多详细信息的新表单。 过去,我为 ID 添加了一个字段,但使其不可见,但这似乎很愚蠢 - ID 是原始查询的唯一字段,因此我应该能够以某种方式纯粹使用代码进行访问。 有人知道怎么做这个吗? 如果您需要更
3回复

Access2007表单:撤销后的事件

我在 Access 2007 中有一个表单,它有一个“更新”例程,可以根据其他字段(文本框、复选框、组合框)中的值启用或禁用某些文本框。 该例程的常规操作效果很好。 现在我发现按 ESC 会调用撤消功能,该功能会恢复所有字段中的原始值。 但是此撤消不会调用这些字段上的事件,因此表单处于错误状态,其中
3回复

如果[ComboBox]在VBA/Access2007中为空语句

我有一个带有一个ComboBox( YearToBeBuilt )和两个YearToBeBuilt字段( Cost和YearofExpenditureCost )的YearofExpenditureCost 。 所有控件都链接到主表,并且一旦在表单上进行了选择/输入,便会更新该表。 我在V
1回复

VBA和Access2007数据验证,登录麻烦

请忍受我是VBA的一个完全菜鸟,我无意编写代码,但无论如何我最终还是这样做了,因为如果没有它,我将看不到如何实现我想要的东西。 我一直在互联网上搜索3天,每天10小时,运气不佳。 我有一个要保护的Access数据库。 让我解释一下我要首先实现的目标: 1)我有一个组合框,它的形式是查找
3回复

在Access2007中再次显示隐藏的表单

如果使用acHidden打开表单,是否可以使用VBA再次显示它? 我一直在搜索,但只能找到有关如何打开隐藏表格的信息(我知道该怎么做)。
1回复

在Access2007中导入表单后未触发表单加载/卸载事件

因此,我只是按照此处的步骤手动拆分数据库。 由于某种原因,未在一种表单上触发加载事件,而在另一种表单上未触发卸载事件(但是在每种情况下,相反的事件确实起作用)。 第二种形式(“卸载不起作用”)也拒绝进入设计模式,直到我手动将其关闭然后再将其打开到设计模式。 我已经确认open和close事
3回复

访问,使用按钮以不同的方式打开相同的表单

我在工作中使用Access 2007,并尝试构建数据库。 我想知道是否有可能在“主菜单”表单上有两个不同的按钮来打开相同的“数据输入”表单。 但是,一个按钮自动转到新的空白记录以进行数据输入,另一个按钮提示用户输入特定的ID#(与表单中的字段绑定),然后表单将在该记录上打开。 这将用于更新
1回复

允许条件编辑同时隐藏其他命令按钮Access2007-2010

我目前有一个被锁定以防止意外编辑的表单。 但是,该表单包含可能需要编辑的客户联系信息等信息。 我目前有一个命令按钮,用户可以单击该按钮关闭表单并在“编辑”模式下重新打开它。 我想要发生的是当表单重新加载并出现“保存”按钮时,页面上的所有其他命令按钮都会消失。 单击保存按钮后,我希望表单返回到不可编辑