小编Rol*_*ble的帖子

OO设计问题 - 家长/孩子(通知) - 通函?

我对OO设计过程很新,所以请耐心等待....

我有两个实体,我需要建模为类,称为父和子(它足够接近实际的问题域).一位家长将有一个或多个孩子 - 在这个申请中,我对没有孩子的父母没有兴趣.

我的大脑出去吃午饭的地方是我需要能够找到另一个.在我的数据库中,我可以使用正常的外键关系实现它,并且SQL的基于集合的特性使得查找给定父项的所有子项或给定子项的父项变得容易.但作为对象......?

认为家长应携带儿童的集合(列表,无论如何).我还认为每个孩子都应该提及其父母.然而,参考文献的循环性质让我头疼.

我是:

  • 在正确的轨道上?
  • 完全离开基地?如果是这样,我该怎么办?

这几乎肯定会在VB.NET中实现,但我还是可以通过切割代码来实现.

8个答案后编辑:

谢谢大家.很难选择一个接受的答案.

澄清答案中提出质疑的几件事:

  • 父和子是非常不同的实体 - 根本没有继承关系.我选择了我所做的名字,因为它们真的非常接近真实世界的问题领域,现在看来它是从OO角度来看混淆的根源.
  • 层次结构只有一层深度 - 孩子们永远不会在应用程序中拥有子级.

再次感谢.

oop tree class-design data-structures

15
推荐指数
2
解决办法
3185
查看次数

Access 2007 中的颜色常量

MS Access 2007 表单设计视图属性表公开了一些颜色选项,我似乎无法找到用于在代码中使用它们的常量。具体来说:Text DarkText LightBackground Dark HeaderBackground Light Header

是否存在这些预定义常量?我在对象浏览器或帮助中似乎没有它们。否则,有没有人知道他们的 RGB 十六进制值?

ms-access vba colors ms-access-2007

4
推荐指数
2
解决办法
7539
查看次数

对子窗体的Form属性的引用无效(ms Access 2007)

我使用的技术类似于Remou对这个问题的回答,以操纵子窗体上控件的性能.伟大工程只要父窗体的记录至少有一个记录.如果父表单没有记录,我得到:

错误2455,"您输入的表达式对属性表单/报表具有无效引用."

尝试递归调用时抛出错误.下面是代码的简化版本(我已经删除了错误处理和更多案例,包括其他案例).此代码位于Module中,并从我的应用程序中的大多数表单的Load事件中调用:

Public Sub LockUnlockForm(frmLoad As Form)

Dim ctl As Control

    For Each ctl In frmLoad.Controls
        With ctl
            Select Case .ControlType
                Case acTextBox, acComboBox, acCheckBox
                    .Locked = Not gblnAuthorized
                Case acSubform
                    LockUnlockForm .Form  '<--- this line errors
            End Select
        End With
    Next

End Sub
Run Code Online (Sandbox Code Playgroud)

我想在现在给我问题的表单上做的是在父级创建一个新记录,并允许用户将数据添加到子表单(如果gblnAuthorized为True,或者设置一个简单的消息,如果它是False).在打电话之前我别无选择LockUnlockForm吗?创建新的父表单级记录是否可以防止此错误?

ms-access vba ms-access-2007 access-vba

3
推荐指数
1
解决办法
3696
查看次数