访问表单中的Web表单

时间:2012-11-01 22:06:50

标签: ms-access-2007 webbrowser-control

我正在尝试在访问表单中包含一个html菜单。如何从网页获取反馈(用户在网页中选择的内容)到Access。我正在使用Access 2007,MS WebBrowser组件。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

没有官方方法可以在WebBrowser中调用托管表单或启动Access上的任何活动。

然而,我使用了一个漂亮的技巧。加载文档后,您可以将某些元素的setAttribute设置为Access窗体。 htmlDoc.all.formDiv.setAttribute "outerForm", Me

然后,您可以在WebBrowser中引用表单的属性和方法。

document.all.formDiv.outerForm.Application.DoCmd.Close(2,"webForm")

修改
奇怪的是,当我添加<META http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>标签时,似乎引用仍然为空。看起来,属性现在更严格,setAttribute期望一个字符串。

下一个选项是将访问表单(&#39; Me&#39;)传递给WebBrowser中的变量。然而,它看起来并不直接暴露全局变量或函数。

但是,这可以通过向HTMLBodyElement原型添加一个函数来轻松克服,该函数将其参数传递给全局变量,并且也可以返回任何类。

在html页面中你有这个:

var frm = null;
HTMLBodyElement.prototype.setForm = function(f){frm = f}

从Access只需将参考传递给htmlDoc.document.body.setForm(Me)