VBScript ADO プログラミング
適用先: Access 2013、Office 2013
ADO プロジェクトの作成
Microsoft Visual Basic Scripting Edition では、タイプ ライブラリをサポートしていないので、プロジェクトの ADO を参照する必要はありません。 したがって、コマンド行の完全な確定などの関連付け機能はサポートしていません。 また、VBScript において、既定では ADO 列挙定数を定義しません。
ただし、ADO では、VBScript 用の次の定義を納めた 2 つのインクルード ファイルを用意しています。
サーバー側スクリプトには、Adovbs.inc を使用します。これは、既定で c:\Program Files\Common Files\System\ado\ フォルダーにインストールされます。
クライアント側スクリプトには、Adcvbs.inc を使用します。これは、既定で c:\Program Files\Common Files\System\msdac\ フォルダーにインストールされます。
これらのファイルの定数定義をコピーして ASP ページに貼り付けるか、サーバー側のスクリプトを実行している場合は、Adovbs.inc ファイルを Web サイト上のフォルダーにコピーし、次のように ASP ページから参照できます。
<!--#include File="adovbs.inc"-->
VBScript における ADO オブジェクトの作成
Dim ステートメントでは、オブジェクトを VBScript の特定の型に割り当てることはできません。 また、VBScript では、Visual Basic for Applications の Dim ステートメントに使用する New 構文もサポートしていません。 代わりに、CreateObject 関数呼び出しを使用します。
Dim Rs1
Set Rs1 = Server.CreateObject( "ADODB.Recordset" )
VBScript の例
次のコードは、Active Server Page (ASP) ファイルにおける VBScript サーバー側プログラミングの一般的な例です。
<% @LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<!--#include File="adovbs.inc"-->
<HTML>
<BODY BGCOLOR="White" topmargin="10" leftmargin="10">
<!-- Your ASP Code goes here -->
<%
Dim Source
Dim Connect
Dim Rs1
Source = "SELECT * FROM Authors"
Connect = "Provider=sqloledb;Data Source=srv;" & _
"Initial Catalog=Pubs;Integrated Security=SSPI;"
Set Rs1 = Server.CreateObject( "ADODB.Recordset" )
Rs1.Open Source, Connect, adOpenForwardOnly
Response.Write("Success!")
%>
</BODY>
</HTML>
VBScript のより具体的な例については、ADO のマニュアルを参照してください。 詳細については、「 Microsoft Visual Basic Scripting Edition の ADO コード例」を参照してください。
VBScript と Visual Basic の違い
構文の使用方法を始め、VBScript で ADO を実行することは、Visual Basic で ADO を実行する場合と、さまざまな点で似ています。 ただし、いくつか大きな違いもあります。
VBScript は、さまざまな種類のデータを格納できるバリアント型 (Variant) だけをサポートしています。 バリアント データ型で必要なデータを保存しても、そのデータは VBScript によってキャストされるので正しく機能します。 VBScript は ADO に必要な型を認識し、値をバリアント型に変換します。
VBScript 内では使用
on error goto <label>
できません。VBScript は、 Msgbox 、 Date 、および IsNumeric などの組み込み Visual Basic 関数をサポートしています。 ただし、VBScript は Visual Basic のサブセットなので、すべての組み込み関数をサポートしているわけではありません。 たとえば、VBScript は Format 関数とファイル入出力関数はサポートしていません。