首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-ADVICE请求- MS-ACCESS超链接比较脚本建议

-ADVICE请求- MS-ACCESS超链接比较脚本建议
EN

Stack Overflow用户
提问于 2017-01-22 04:57:50
回答 1查看 177关注 0票数 0

我是MS-Access的新手,有一些指导性问题,

我的组织使用MS-Access来跟踪大型电子零件库存。这些部件有一个链接到产品网页的超链接字段。下面是一个例子:

代码语言:javascript
复制
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。

现在的验证流程是这样的:

每个月左右,我们中的一大群人就会坐下来,一个接一个地将超链接复制到google中。然后我们打开相应的网页,验证组件的可用性等。

我们有近1000个组件,这个过程需要几个小时。我所寻找的就是如何改进我们的工作流程的建议。我希望有一种方法可以编写一个“带有默认浏览器和搜索字符串的打开超链接”宏或脚本接口。然后,伪脚本将检查字符串"Quantity Available“是否大于1,如果不是(零件脱销),则将零件标记为过时。

任何建议都将不胜感激,我的目标是优化我们的工作流程。

EN

回答 1

Stack Overflow用户

发布于 2017-01-22 14:18:13

您可以遍历网页的DOM。快速浏览一下web页面,您可以看到一个名为product-details的表格。

因此,下面的VBA代码将加载示例网页,并提取值。

代码语言:javascript
复制
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

以上输出:

代码语言:javascript
复制
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代码需要引用:

代码语言:javascript
复制
Microsoft Internet Controls
Microsoft HTML Object Library

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41784431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档