标签: subform

如何在win app中加载表单面板其他表单

我用C#创建一个Windows窗体应用程序.

我有一个普通表格和一个小组.

我将subForm显示在此面板中,代码如下:

SubForm objForm= SubForm.InstanceForm();
this.IsMdiContainer = true;
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();
Run Code Online (Sandbox Code Playgroud)

现在我想在这个面板的subForm上显示其他形式,但我不知道该怎么做.

c# subform winforms

22
推荐指数
1
解决办法
5万
查看次数

如何摆脱子窗体末尾添加新记录?

我使用子表单来显示查询的结果,但在记录的末尾有一个*(New)用于添加新记录的.我不希望用户能够通过此子表单添加新记录.我怎么能摆脱这个?

ms-access subform

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

使用SQL表时未加载Access子表单

我有一个表格访问5个几乎相同的子表单.当我加载表单时,通常会很好.但是,我们最近从Access后端更改为SQL,从那时起,表单似乎无法正确加载.

如果我进入设计模式然后进入正常模式,一切都很好.然而,这不是一个可行的选择,用户不能这样做.

任何人都有这个问题或知道如何解决这个问题?

编辑问题的屏幕截图

1:这是第一个有效的

在此输入图像描述

2:这个没有.

在此输入图像描述

3:不过,如果我点击设计模式然后再次点击查看模式,我发现它起作用了,至少对于现存的一些:

在此输入图像描述

谢谢

ms-access subform ms-access-2010

6
推荐指数
1
解决办法
273
查看次数

在提交时使用ajax向表单添加子表单

我读了这篇文章:http: //www.jeremykendall.net/2009/01/19/dynamically-adding-elements-to-zend-form/

这非常有趣,而且运行正常.

我需要做同样但使用SubForm.我的意思是当用户按下按钮时,我通过ajax调用一个动作来添加,附加并向我现有的表单显示子表单.

例如:
我有一个表单,用户必须填写他孩子的姓名和姓氏,因此有一个"添加孩子"按钮.当用户按下该按钮时,应将SubForm添加到现有表单并显示.在提交时,它将验证与该文章中的示例完全相同.唯一的区别是,在那里他只添加一个字段.我需要添加一个SubForm,但方式完全相同.

我在我的行动中尝试了以下内容(由Ajax调用):

public function clonerecursivegroupAction()
{
    $this->_helper->layout->disableLayout();
    $ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('clonerecursivegroup', 'html')->initContext();

    $id = $this->_getParam('id', null);

    $subform1 = new Zend_Form_SubForm();

    $Element1 = $subform1->createElement('text', 'text1');
    $Element1->setLabel('text1')->setRequired(true);
    $Element2 = $subform1->createElement('text', 'text2');
    $Element2->setLabel('text2')->setRequired(false);

    $subform1->addElement($Element1);
    $subform1->addElement($Element2);

    $this->view->field = $subform1->__toString();
}
Run Code Online (Sandbox Code Playgroud)

这几乎可行.
这个动作的视图返回SubForm的html代码,所以在我的ajax调用成功时我只显示它.

问题是,在提交时它会验证表单,但它丢失了刚刚添加的新子表单.只有一个元素的文章中不会发生这种情况.我想我只需要将SubForm添加到现有表单中,但是如何?

ajax zend-framework add subform

6
推荐指数
1
解决办法
1938
查看次数

表单提交后,子表单值在接收端显示为null

我已经构建了一个提交正常的表单,但是当我在控制器中查看它们时,子表单值在接收端都以null结尾.

这是我的UserProfileType表格,基于User课程.那么具体的,我们正在寻找在子窗体的subscriptionTier1,subscriptionTier1以及subscriptionTier1:

class UserProfileType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('firstName', TextType::class)
            ->add('lastName', TextType::class)
            ->add('email', EmailType::class)

            // etc... I'll keep out the unimportant fields

            // here are the subforms whose values show up as null on the back end
            ->add('subscriptionTier1', UserSubscriptionTierType::class, [
                'required' => false,
                'mapped' => false
                ])
            ->add('subscriptionTier2', UserSubscriptionTierType::class, [
                    'required' => false,
                    'mapped' => false
                ])
            ->add('subscriptionTier3', UserSubscriptionTierType::class, [
                    'required' => false, …
Run Code Online (Sandbox Code Playgroud)

forms subform symfony

6
推荐指数
1
解决办法
112
查看次数

在子窗体中设置过滤器

我有一个主要形式"属性",它有两个子表单,其中一个显示该属性中的房间,另一个显示每个房间的占用者.

当您更改属性时,房间会在第一个子表单中更改,这是连续的.当您向下滚动房间子窗体,使新房间处于活动状态时,我希望占用者在第二个子窗体中进行更改.

到目前为止,我已经在"属性"主要形式的Current事件中写了这个:

Dim dblRoomID As Double
dblRoomID = Forms.Properties.frmRoomsByPropertySubform.Form.room_id
Run Code Online (Sandbox Code Playgroud)

哪个成功从第一个子窗体中拉出Room_ID.

现在,我需要使用Room_ID在第二个子表单中设置过滤器,该子表单当前显示所有属性的所有占用者,但具有Room_ID字段.

我不能

Forms.Properies.frmStudentsRoomQuickview.Form.Filter = "[Room_ID]=" & dblRoomID
Run Code Online (Sandbox Code Playgroud)

或docmd.applyfilter工作 - 我一直在假设这是因为活动形式需要是'frmstudentRoomQuickview'以供后来工作 - 但我不明白为什么简单地设置.filter不会工作.

编辑:我应该添加,我不能在"房间"表格中使用子表格,因为房间形式需要连续.

编辑2:

Private Sub Form_Current()
Dim dblRoomID As Double
    If IsNull(Forms.Properties.frmRoomsByPropertySubform.Form.room_id) Then
        Forms.Properties.frmRoomsByPropertySubform.Visible = False
        Forms.Properties.frmStudentsRoomQuickview.Visible = False
    Else
        Forms.Properties.frmRoomsByPropertySubform.Visible = True
        Forms.Properties.frmStudentsRoomQuickview.Visible = True
        dblRoomID = Forms.Properties.frmRoomsByPropertySubform.Form.room_id
        Call frmStudentsRoomQuickview_Enter(dblRoomID)
    End If

End Sub

Private Sub frmStudentsRoomQuickview_Enter(dblRoomID)
Forms.Properties.frmStudentsRoomQuickview.Filter = "[room_id] = " & dblRoomID
Forms.Properties.frmStudentsRoomQuickview.FilterOn = True
Forms.Properties.frmStudentsRoomQuickview.Requery
Debug.Print Screen.ActiveForm.name
End Sub
Run Code Online (Sandbox Code Playgroud)

我现在得到"程序声明与具有相同名称的事件或程序的描述"错误

ms-access vba filter subform

5
推荐指数
1
解决办法
4万
查看次数

如何在MS Access中引用子表单

在我的MS Access应用程序中,我使用的表单只包含两个控件 - 文本框和命令按钮.此表单命名为HEADER FORM.

HEADER FORM 用作各种其他形式的标题部分中的子表单.

我想要做的是,每当一个特定的表单加载时,我想在文本框中填写详细信息HEADER FORM(这将是已登录的人的名字.从下图中可以清楚地看到相同的内容).

我试图调用updateHeader在所有表单的表单加载事件中命名的全局子例程.

Public Sub updateHeader()
    Me![HEADER FORM].Form.txtHeaderName.Value = strPerson
End Sub
Run Code Online (Sandbox Code Playgroud)

以下是HEADER FORM在"设计视图"中显示的图片,同样用作登录表单中的子表单.

在此输入图像描述

我尝试了各种其他选项,但我无法提出正确的方式来引用表单.我从根本上做错了吗?

我看到的错误是无效使用Me关键字.此外,我的updateHeader子例程是一个全局子程序,它从所有表单的Form_Load事件中调用.

ms-access vba subform ms-access-2010

5
推荐指数
1
解决办法
1万
查看次数

从另一个子表单重新查询子表单,问题

我在主窗体上有 2 个子窗体。Sub_2 在列表中显示在 sub_1 中选择的项目的详细信息。对于这两个子表单,我使用 continue 表单,它们被限制为 2 个查询,有一个公共字段,比如“id”。

我所做的是在 sub_1 上的 DClick 事件中添加代码来设置 sub_2 的过滤器,如

Me.Parent.sub_2.Form.Filter = "id=" & "'" & Me.Recordset!id & "'"
Run Code Online (Sandbox Code Playgroud)

然后重新查询

Me.Parent.sub_2.Form.Requery
Run Code Online (Sandbox Code Playgroud)

但是没有运气,当我双击 sub_1 中的记录时,sub_2 中没有变化。我看过相关问题,我认为这应该有效......

有什么建议?也许我应该使用其他方法来做到这一点?

PS:我确定Me.Parent.sub_2.Filter已更改,但重新查询不起作用。

编辑:

感谢您的回答。我发现了问题,即'id'字段在查询中,但它没有显示在子表单上,所以可能Access无法使用它。

当过滤器更改时,Access 会自动重新查询。

ms-access vba subform

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

Access子窗体不显示ado记录集

我正在尝试在数据表视图中的access07子表单中显示ADO记录集.只是一个快照,只读.连接成功,记录集包含数据,但是,当我设置子表单记录集时,不显示任何字段.子窗体显示一个垂直滚动条,当滚动到底部时,它表示正确的记录数,但它没有显示任何字段,没有显示任何列.

这一定很简单,我很想念.有任何想法吗?

编辑:这是建立记录集的代码的摘要.

Set cn = New ADODB.Connection
Set rsADO = New ADODB.Recordset

dbBackend = "C:\Users\Me\Desktop\TEST_Db_Backend.accdb"
sqlStr = "SELECT * FROM tblMaster;"
    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbBackend & ";User Id=;Password=;"

    cn.CursorLocation = adUseClient
    cn.ConnectionString = strConnect
    cn.Open
    If cn.State = adStateOpen Then
        rsADO.Open sqlStr, cn, adOpenStatic, adLockReadOnly
End If

    Set Me.PreviewPane.Form.Recordset = rsADO

rsADO.Close
cn.Close
Set rsADO = Nothing
Set cn = Nothing
Run Code Online (Sandbox Code Playgroud)

vba ado recordset subform access-vba

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

如何在编辑项目时停止自动滚动子窗体?

我正在编辑一个旧的MS Access应用程序,其中一个表单包含一堆子表单.子表单都包含静态定位的对象,不应滚动.

我的问题是,如果用户选择一个TextBox朝向子窗体的底部并开始编辑它,窗体会自动滚动以使TextBox更接近顶部,这基本上会切断窗体的顶部.

如何禁用此行为?

ms-access subform ms-access-2010

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