【发布时间】:2019-08-07 13:30:42
【问题描述】:
所以我有这个访问表单,我在其中使用这个 VBA 代码和一个到 MySQL 数据库的 DAO 连接。一切正常,但如果用户在没有点击保存按钮的情况下关闭表单,则无论如何都会保存新记录。
那么我正在寻找的是,是否有任何方法可以在关闭事件时阻止将新记录保存到数据库中?
我的代码,
Private Sub Form_Load()
'Set Form Recordset
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim SQL As String
Set db = OpenDatabase("", False, False, Globales.ConnString)
SQL = "SELECT tbl6Suplidores.ID, tbl6Suplidores.NombreSuplidor, tbl6Suplidores.NumeroComerciante, tbl6Suplidores.DescripcionBienes, tbl6Suplidores.NombreContacto, tbl6Suplidores.NumeroTelefono, tbl6Suplidores.Email " _
& "FROM tbl6Suplidores;"
Set rs = db.OpenRecordset(SQL, dbOpenDynaset, dbAppendOnly)
Set Me.Form.Recordset = rs
End Sub
我在想,既然我使用了dbAppendOnly,它不会让我在关闭事件时删除当前记录?
欢迎任何想法! 谢谢!
【问题讨论】:
-
为什么要使用代码来填充表单?考虑到 MySQL 的链接表,然后将表单绑定到链接表并使用内置表单功能处理任何添加/编辑/删除。
-
好吧,我尝试了链接表,但这并不是我真正想要的方法。通过这种方式,可以只分发 Access 文件,而无需在每台计算机上设置 odbc 连接。用户也无权访问这些表。一切都很好,除了这个小东西。
-
您可以使用代码动态链接表格。见DoCmd.TransferDatabase。