-ADVICE REQUEST- MS-ACCESS超链接比较脚本建议

时间:2017-01-21 20:57:50

标签: database ms-access hyperlink

我是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,如果不是(该部件缺货),则将该部件标记为过时。

我们非常感谢任何建议,我的目标是优化我们的工作流程。

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

我建议您在测试后对上述两个库使用后期绑定。