2017-01-21 3 views
0

私は-ADVICE REQUEST- MS-ACCESSハイパーリンクの比較スクリプトのアドバイス

私の組織が大きい電子部品の在庫を追跡するために、MS-Accessを使用、ブランドMS-Accessに新たなんだと、いくつかのガイドライン-の質問がありました。これらの部分には、製品のWebページにリンクするハイパーリンクフィールドがあります。ここでは一例です。ここで

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

サプライヤーDigi-Keyのに当社のハイパーリンクポイントのほぼ全体が大多数。

毎月またはそう、私たちの大規模なグループが座っ及び1つのコピーグーグルへのハイパーリンクによって1:

今検証フローは次のようになります。 対応するWebページを開き、コンポーネントの可用性などを確認します。

私たちは約1000のコンポーネントを持ち、このプロセスには数時間かかることがあります。私が探しているのは、ワークフローを改善する方法に関するアドバイスです。私は、 "デフォルトのブラウザと検索文字列で開いたハイパーリンク"マクロまたはスクリプトインタフェースを記述する方法があると考えていました。擬似スクリプトは、文字列 "Quantity Available"が1より大きいかどうかをチェックし、そうでない場合(部品が在庫切れだった場合)、部品を廃止とマークします。

アドバイスをいただければ幸いです。私はワークフローを最適化することを本当に目指しています。

答えて

2

ウェブページのDOMをトラバースすることができます。 Webページを簡単に見て、製品の詳細の名前を持つ表を見ることができます。

したがって、次のVBAコードはサンプルWebページを読み込み、値を引き出します。

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で指定されたレコード/フォームに行かなければなりません。ボタンを押すと上記の値がフォームにコピーされます。私がテストした後、あなたが上記の2つのライブラリのために遅延バインディングを使用することを示唆している

Microsoft Internet Controls 
Microsoft HTML Object Library 

:VBAコード上記

への参照が必要です。

関連する問題