我是MS-Access的新手,并且有一些指南问题,
我的组织使用MS-Access跟踪大型电子零件库存。这些部分有一个链接到产品网页的超链接字段。这是一个例子:
Part Number Part Type Value Description Component_Height Voltage Tolerance Schematic Part Layout PCB Footprint Manufacturer Part Number Manufacturer Distributor Part Number Distributor Price Availability Link
UMK105CG100DV-F Ceramic 10pF CAP CER 10PF 50V NP0 0402 0.35 MM 50V ±0.5pF xxxxx\C_NP,xxxxx\C_NP_Small c_0402 UMK105CG100DV-F Taiyo Yuden 587-1947-2-ND Digi-Key 0.00378 In Stock http://www.digikey.com/product-detail/en/UMK105CG100DV-F/587-1947-2-ND/1473246
链接到这里:
http://www.digikey.com/product-detail/en/UMK105CG100DV-F/587-1947-2-ND/1473246
几乎所有超链接都指向供应商DigiKey。
目前验证流程如下:
每个月左右我们都会坐下来,一个接一个地将超链接复制到谷歌。 然后,我们打开相应的网页并验证组件可用性等。
我们有近1000个组件,此过程需要数小时。我正在寻找的是如何改进我们的工作流程的建议。我希望有一种方法来编写“使用默认浏览器和搜索字符串打开超链接”宏或脚本界面。然后伪脚本将检查字符串“Quantity Available”是否大于1,如果不是(该部件缺货),则将该部件标记为过时。
我们非常感谢任何建议,我的目标是优化我们的工作流程。
答案 0 :(得分:2)
您可以遍历网页的DOM。快速查看网页,您可以看到一个包含产品详细信息名称的表格。
因此,以下VBA代码将加载示例网页,并提取值。
Option Compare Database
Option Explicit
Enum READYSTATE
READYSTATE_UNINITIALIZED = 0
READYSTATE_LOADING = 1
READYSTATE_LOADED = 2
READYSTATE_INTERACTIVE = 3
READYSTATE_COMPLETE = 4
End Enum
Sub GetWebX()
Dim ie As New InternetExplorer
Dim HTML As New HTMLDocument
Dim strURL As String
Dim Htable As New HTMLDocument
Dim i As Integer
strURL = "http://www.digikey.com/product-detail/en/UMK105CG100DV-F/587-1947-2-ND/1473246"
ie.Navigate strURL
Do While ie.READYSTATE < READYSTATE_COMPLETE
DoEvents
Loop
Set HTML = ie.Document
Set Htable = HTML.getElementById("product-details")
For i = 0 To Htable.Rows.Length - 1
With Htable.Rows(i)
Debug.Print Trim(.Cells(0).innerText), Trim(.Cells(1).innerText)
End With
Next I
ie.Quit
Set ie = Nothing
End Sub
上面的输出:
Digi-Key Part Number 587-1947-2-ND
Quantity Available 230,000
Can ship immediately
Manufacturer Taiyo Yuden
Manufacturer Part Number UMK105CG100DV-F
Description CAP CER 10PF 50V NP0 0402
Expanded Description 10pF ±0.5pF 50V Ceramic Capacitor C0G, NP0 0402(1005 Metric)
Lead Free Status / RoHS Status Lead free / RoHS Compliant
Moisture Sensitivity Level (MSL) 1 (Unlimited)
Manufacturer Standard Lead Time 11 Weeks
由于上面是一个数组,你可以在表单上放一个按钮,并有一些额外的VBA行将值写入表单。因此,用户只需要访问Access中的给定记录/表单 - 按下按钮,上面的值就会被复制到表单中。
上述VBA代码需要引用:
Microsoft Internet Controls
Microsoft HTML Object Library
我建议您在测试后对上述两个库使用后期绑定。