很简单的问题哦~~关于ACCESS保存纪录

DotNetLover 2004-10-29 11:51:52
我用ACCESS窗体向导建了一个窗体,当我更改窗体里的数据后,点击关闭按钮,记录就自动保存了。


我不想让他自动保存,我想需要提示是否保存对话框,人工确定是否保存更改,怎么做啊?


谢谢了
...全文
642 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝帆·雨轩 2004-11-01
  • 打赏
  • 举报
回复
1.最好不要将控件和字段绑定
2.采用代码的方式获取值
3.保存用命令按钮,对按钮写代码来完成保存/撤消/删除/编辑等操作。

比如我们有一个命令按钮CmdSave,执行后完成对某记录编辑后的保存操作[仅为示例]:

Private Sub CmdSave_Click()
On Error Resume Next
Dim Rs As New ADODB.RecordSet
Dim Response As String
Dim StrSQL As String

Response=MsgBox("您是否要保存刚才所做的更改!",VBYesNo,"保存提示信息")

If Response=VBNo Then

Exit Sub '---如果你选择No,那么跳出过程,不执行保存操作.

Else

Set Rs.ActiveConnection=CurrentProject.Connection
Rs.CursorLocation = adUseClient

StrSQL = "UPDATE Field1,Field2 FROM Table" & " " _
& "WHERE ID = " & 窗体ID

Rs.Excute StrSQL

MsgBox("记录已经更新!",VBYesNo,"保存提示信息")

End If

End Sub

[对于新增/删除的代码类似,StrSQL语句部分做相应改动即可]

新增:
StrSQL = "INSERT INTO Table(ID,Field1,Field2)" & " " _
& "VALUES('" _
& 窗体ID & "','" _
& 窗体Field1 & "','" _
& 窗体Field2 & "')"

删除:
StrSQL = "DELETE FROM Tabel " & " " _
& "WHERE ID = " & 窗体ID

[建议:对于删除,最好在表里面加入标识符来表示,不要直接删除记录,一旦误操作删除记录将造成很大麻烦,如果用字段来表示,你只要把标识符由Delete修改为New或者Modify等就可以了.对于已经被标识为删除的记录,我们只要根据不同的语句来控制不显示就可以了]

[以上代码仅为示例,直接在这里写的,你可以稍做改动后调试]
rukyx 2004-11-01
  • 打赏
  • 举报
回复
你可以把窗体控件与字段绑定,但要在vb编辑器中加入这些语句。
要人工保存,在该按钮的事件触发器中加入:
Docmd.DoMenuItem acFormBar,acRecordsMenu,acSaveRecord,,acMenuVer70
要修改后数据不自动保存,加入:
Docmd.DoMenuItem acFormBar,acEditMenu,acUndo,,acMenuVer70
lucker888 2004-10-30
  • 打赏
  • 举报
回复
首先不要把窗体控件与字段绑定
在Form_Load里编写程序把记录读到控件里
在Form_Close里编程关闭前保存记录的进程

5,173

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧