【问题标题】:MS Access, Use HTML in Web Browser Control to Open MS Access Form in Same MS Access fileMS Access,在 Web 浏览器控件中使用 HTML 在同一 MS Access 文件中打开 MS Access 表单
【发布时间】:2023-01-17 07:09:54
【问题描述】:

好吧,这真是个傻瓜。我做了一些互联网搜索,但没有在它附近的任何地方找到任何文章、论坛问题或答案。

我想做的是在同一个 Microsoft Access 应用程序的 Web 浏览器控件中从 HTML 打开 Microsoft Access 表单。

Web 浏览器控件用于生成比尝试使用连续表单执行某些操作更可预测的可视输出。这对于只读输出很好,我不希望能够在控件中编辑数据。但是,能够写入插入到控件中的 HTML 将非常有用,这是一种打开 Web 控件所在的 MS Access 文件中已有的表单之一的方法。

TIA,一如既往。

【问题讨论】:

  • 您正在混合不同的技术。 Access 表单只能在 Access 中打开,Web 浏览器无法加载/显示本地 Access 数据库。
  • 您想让 HTML 页面中的代码显示在 WebBrowser 控件中,以便在 Access 中正常打开表单吗?我不知道有任何 HTML 代码可以做到这一点。访问 VBA 命令以打开表单是 DoCmd.OpenForm - 我怀疑 VBA 代码可以嵌入到 HTML 中。

标签: vba ms-access webbrowser-control


【解决方案1】:

下面介绍如何在 HTML 中创建带有按钮的 WebBrowser 控件,单击按钮会导致执行 VBA 代码。然后该代码可以打开一个表单。

将控件的控制源设置为="about:blank"

在表单后面的代码中,假设控件名为 WBControl,请执行以下操作:

Dim WBDocument As HTMLDocument
Dim WBBody As HTMLBody
Dim WithEvents Button_1 As HTMLButtonElement
Dim WithEvents Button_2 As HTMLButtonElement

Private Sub WBControl_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If pDisp.ReadyState = READYSTATE_COMPLETE Then
    Set WBDocument = pDisp.Document
    Set WBBody = WBDocument.body
    WBBody.innerHTML = "Choose between <button id=btn-1>Click Me!</button>" & _
                       " and <button id=btn-2>No, Click Me!!</button>"
    Set Button_1 = WBDocument.getElementById("btn-1")
    Set Button_2 = WBDocument.getElementById("btn-2")
End If
End Sub

Private Function Button_1_onclick() As Boolean
Debug.Print "User clicked the first button."
End Function

Private Function Button_2_onclick() As Boolean
Debug.Print "User clicked the second button."
End Function

我通常不将事件处理程序附加到单个元素,而是使用

Dim WithEvents WBBody As HTMLBody

然后检查单击的元素以查看下一步要做什么:

Sub WBBody_onmousedown()
Dim ev As IHTMLEventObj
Dim el As HTMLObjectElement
Set ev = WBDocument.parentWindow.event
Set el = ev.srcElement
Debug.Print "User clicked a <"; el.tagName; "> element with id="; el.ID
End Sub

如果点击的元素包含不感兴趣的子元素,您可以使用 el.parentElement 向上移动 DOM 树,寻找您想要视为可点击的元素。例如,响应对表格单元格的点击,而不考虑单元格内容的复杂性。

【讨论】:

  • 感谢那。我需要对其进行测试,但这是一项工作,因此要到下周才能完成。
猜你喜欢
  • 1970-01-01
  • 2015-12-12
  • 2011-09-06
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多