使用源代码管理更改文本框的内容

Posted

技术标签:

【中文标题】使用源代码管理更改文本框的内容【英文标题】:Change content of a textbox with a source control 【发布时间】:2014-01-09 14:54:16 【问题描述】:

我必须对在 Access 2003 上运行的程序进行一些更改。

我有一个表单,单击某个按钮将根据所选内容更改文本框的文本(图像研究)。 最初,此文本框链接到另一个隐藏文本框,该文本框包含此图像的原始路径(数据库中的路径/未编辑)。

我的问题包括以下内容:当我希望链接到数据库的文本框更改为与另一个文本框(包含最新路径)匹配,从而允许 Access 保存更改时,它只是不起作用.链接到数据库的文本框只是空白。

这是我在 VBA 中使用的代码:

Public Sub SearchForImage(ByVal txtName As String, ByVal txtAuto As String)
    On Error Resume Next
    Dim B As String

    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
        Me.Controls(txtName).SetFocus
        Me.Controls(txtName).Text = ""
        B = .SelectedItems(1)
    End With
    Me.Controls(txtAuto).SetFocus
    Me.Controls(txtAuto).Text = ""
    Me.Controls(txtAuto) = B
End Sub

这使我可以更改文本(以及另一个不适合该问题的代码[它只是在输入新值之前使文本变为空白])。 “txtName”代表我发送给函数的不同文本框(它们不以任何方式链接到数据库),“txtAuto”代表通过源代码管理链接到数据库的文本框。

有没有人知道为什么我不能改变 this 的值?是因为文本框与源代码管理链接吗?将'B'的内容直接保存在数据库中会更好吗?

【问题讨论】:

【参考方案1】:

我不确定我对你想要做什么的理解程度。但是,我认为您应该使用那些控件的.Value 属性而不是.Text,然后您不需要先使用.SetFocus

'On Error Resume Next ' <-- avoid this whenever possible
Dim B As String
With Application.FileDialog(1) ' msoFileDialogOpen
    .AllowMultiSelect = False
    If .Show = True Then
        B = .SelectedItems(1)
        Me.Controls(txtName).Value = B
    End If
End With
Me.Controls(txtAuto).Value = B

这可能并不完全符合您的要求。但是,如果没有On Error Resume Next 活跃,至少它可以让您和我们对问题有更清晰的认识。

【讨论】:

非常感谢,这有助于纠正错误。问题还来自一些图像路径超过 255 个字符的事实。限制,因此没有保存。

以上是关于使用源代码管理更改文本框的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何检测文本框的内容已更改

管理页面及功能实现《iVX低代码/无代码个人博客制作》

如何在悬停时更改文本框内容

如何使用jquery更改与特定类匹配的所有文本框的属性

使用 jQuery 尝试更改文本框的背景颜色但在 wordpress 中不起作用

如何更改文本框的大小,以便它可以使用tkinter和python在UI上水平扩展