[SQL] PATDATAを活用しよう(2)
案件検索
今日のテーマは、PATDATAにおける案件検索です。PATDATA等の期限管理ソフトを使う場合、出願案件ごとに整理番号をつけます。自社の番号、顧客の番号、更に外国案件であれば外国代理人の整理番号と、様々な識別子としての整理番号をつけます。今日は、その整理番号をもとに検索するExcelを作ります。
Microsoft Excelの設定
Excelの設定は、前回のひと言で記載したVBエディターの[ツール] > [参照設定]で設定したオブジェクトの読み込みを行ってください。
Visual Basic部分
では、次にVBAのコードを記載します。関数名は、numberSearch()としました。マクロの呼び出し画面から動作させる場合は、この関数名を探して、実行してください。
Sub numberSearch()
Dim adoCON As ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim strSQL, strTemp As String
Dim i As Integer
'データベースの接続 & 初期化
Set adoCON = New ADODB.Connection
' ODBCのDSNで接続する。
adoCON.Open ("DSN=PDWREAD")
' テキストボックスを表示して入力を受け付ける。
strTemp = InputBox("整理番号を入力してください。")
'# 整理番号と、発明の名称と、出願日とを取得
strSQL = "Select M受付.当方整理番号, M出願手続.名称・日本語 As 発明の名称, M出願手続.出願日 From M出願準備 Inner Join M受付 On M出願準備.SYSID = M受付.SYSID Inner Join M出願手続 On M受付.SYSID = M出願手続.SYSID Where M受付.当方整理番号 Like '%" & strTemp & "%' And M出願準備.国コード = 'JP' And M出願準備.法域コード = '01'"
Set adoRS = adoCON.Execute(strSQL)
'テーブルの読み込み
i = 1
Do Until adoRS.EOF 'レコードセットが終了するまで処理を繰り返す
Cells(i + 1, 2).Value = adoRS![当方整理番号]
Cells(i + 1, 3).Value = adoRS![発明の名称]
Cells(i + 1, 4).Value = adoRS![出願日]
adoRS.MoveNext '次のレコードに移動する
i = i + 1
Loop
'閉じる
adoRS.Close
Set adoRS = Nothing
adoCON.Close
Set adoCON = Nothing
End Sub
前回とほぼ同じ構成です。異なるのは、InputBox()関数を使って、ユーザーからの入力を受け付けることにあります。このnumberSearch()関数を開いているところで[F5]を押すなどして関数を実行すると左図のような画面が表示されます。表示されたテキストボックスに検索したい案件番号の一部を入力します。入力して[OK]ボタンをクリックすると、入力された値が変数のstrTempに代入されます。仮に「A1」とします。通常は、ここでstrTempの内容が適切であるかチェックしたり、テキストボックスで[キャンセル]を押されたかどうかのチェックを入れます。今回は、割愛します。
入力された値「A1」は、SQL文の一部にくっつける形で挿入します。具体的には、「… M受付.当方整理番号 Like ‘%” & strTemp & “%’ And…」といった形でSQL文のWhere句の条件として取り込まれます。
SQL部分
次に入力された値「A1」が、SQL文に挿入された状態のSQL部分を抽出して、改行とインデントを入れて記します。
Select M受付.当方整理番号, M出願手続.名称・日本語 As 発明の名称, M出願手続.出願日
From M出願準備
Inner Join M受付 On M出願準備.SYSID = M受付.SYSID
Inner Join M出願手続 On M受付.SYSID = M出願手続.SYSID
Where M受付.当方整理番号 Like '%A1%'
And M出願準備.国コード = 'JP'
And M出願準備.法域コード = '01'
PATDATAのデータベースは、[受付日]や[当方整理番号]を構成要素に持つ[M受付]テーブルと、発明の名称等を入れる[名称・日本語]や[出願日]を構成要素に持つ[M出願手続]テーブルとを有しています。今回は、[当方整理番号]に対して、Like演算子を使い、入力された文字の前後にワイルドカードの%をつけて、部分一致ができる検索条件を作りました。
結果表示
結果としては、右図のようになります。自社の整理番号、発明の名称及び出願日が一覧として表示されます。検索領域を「発明の名称」にしたり、応用は容易だと思います。VBAの入力機能とSQL文との連携によりPATDATAのデータをより簡単に検索することができるようになると思います。
では、「PATDATAを活用しよう」第2回は、これにて終了です。