设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2368|回复: 4
打印 上一主题 下一主题

[窗体] 做进仓单(子母表)的保存按钮问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-7-28 11:07:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前提:
做新增进仓单窗体时,我采用表头(如:单号、送货人、进仓时间)和表身(如:进仓货物的名称、规格、数量等多行)分别用二个数据表来存储。在做窗口时表身用子窗口来做。增加“保存”“取消退出”两按钮,屏蔽窗口的关闭按窗。
问题:
1、如果将表头和表身窗口数据源直接定义为相应表,那当用户加入数据时,不用点保存,数据实际已保存在数据表中?(这样不点保存退出,数据也保存了。容易形成垃圾数据)
2、如果将表头和表身窗口不定义数据源,表身窗口新增第二行时,会同时改变第一行数据。好象没法做?
       是否只有在ACCESS中建立两个临时表,当点击保存时,将临时表的当前单据数据加入真正要保存数据的表,然后清空。感觉这样也好麻烦?谁有更好的思路?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2011-7-28 11:29:54 | 只看该作者
没人能懂,高人来解答下啊。

大部分源码例子都是单窗体一个表的方式,这样就绑不绑定都简单,现在我这是两个窗口、两个表,而且是子母表,有数据关联的。头痛。
3#
发表于 2011-7-28 12:48:17 | 只看该作者
jwqjwl510 发表于 2011-7-28 11:07
前提:
做新增进仓单窗体时,我采用表头(如:单号、送货人、进仓时间)和表身(如:进仓货物的名称、规格 ...

把保存按钮更名为放弃按钮,用Dirty 属性解决问题。


Dirty 属性
参阅参阅参阅参阅可以使用 Dirty 属性来决定当前记录自从上次保存之后是否修改过。例如,可能要询问用户是否保存对这些记录的更改,如果选择“否”,所做的更改则不会保存。Boolean 类型,可读/写。

expression.Dirty
expression      必需。返回“应用于”列表中的一个对象的表达式。

说明
Dirty 属性使用以下设置:

设置 Visual Basic 说明
True True   当前记录已更改。
False False   当前记录未更改。

此属性在“窗体”视图和“数据表”视图中可用。

此属性可以使用宏或 Visual Basic 读取或设置。

如果记录已保存,Microsoft Access 将 Dirty 属性设置为 False;如果用户更改记录,则该属性将设置为 True。

示例
以下示例在数据更改时将 btnUndo 按钮设为有效。UndoEdits( ) 子程序从文本框控件的 AfterUpdate 事件中调用。单击有效的 btnUndo 按钮会使用 OldValue 属性还原控件值。

Sub UndoEdits()
    If Me.Dirty Then
        Me!btnUndo.Enabled = True    ' Enable button.
    Else
        Me!btnUndo.Enabled = False    ' Disable button.
    End If
End Sub

Sub btnUndo_Click()
    Dim ctlC As Control
        ' For each control.
        For Each ctlC in Me.Controls
            If ctlC.ControlType = acTextBox Then
                ' Restore Old Value.
                ctlC.Value = ctlC.OldValue
            End If
        Next ctlC
End Sub
               
4#
发表于 2011-7-30 19:15:18 | 只看该作者
表头数据首次登记时记录,表身数据分次登记。这种情况下如何做?
5#
发表于 2011-7-30 20:07:13 | 只看该作者
在常规主子窗体中,主窗体中的文本框等控件一般设置为未绑定,子窗体的数据源为一临时表,在主窗体中创建一保存按钮,在其单击事件过程中先创建(ADODB.Recordset)两个记录集,一个是临时表的记录,另一个是要保存表的记录,循环临时表中的所有记录,将其一一保存到另一表中,然后清空临时表中的所有记录,以便下次重新输入新的内容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 03:23 , Processed in 0.126385 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表