LoginSignup
1
0

More than 5 years have passed since last update.

EXCELからActiveXを使ってInterSystems Cache'にアクセスし、レコードを作成する方法

Last updated at Posted at 2018-08-25

Cache'側の準備
Studioで新規作成→Cacheクラス定義
20180826-1.png
User.Main.NewClass1という名前のClassを生成
20180826-2.png
データベースとして使いたい場合、Persistentを選択
20180826-3.png
20180826-4.png

コードは、Propertyが変数(かつフィールド名)(ここはVB風)
%Numericは数字(整数、少数を含む)
%Stringは文字列
最後に;をつける(ここはC風)
Property i as %Numeric;
Property s as %String:

NewClass.cls
コード例
Class User.NewClass1 Extends %Persistent
{
Property i as %Numeric;
Property s as %String:
}

Studioでビルド→コンパイルでCache'側の準備はOK

VBA側から呼び出す
準備
開発→Visual Basicで画面を呼び出す
ツール→参照設定から、
CacheActiveX 2.0 Type Library
CacheObject
を選択
20180826-7.png

プロジェクトエクスプローラで右クリック→挿入→標準モジュール
(ここではModule1が生成されたとする)
20180826-5.png

Module1

Dim factory As CacheActiveX.factory
Sub TestCacheConnection()
       'Cache'と接続する方法----------------------------------------
       Set factory = CreateObject("CacheActiveX.Factory")
       If Not factory.IsConnected() Then
       Dim connectstring As String

     ' You can explicitly specify the connection string:
     connectstring = "cn_iptcp:127.0.0.1[1972]:USER:userid:password"

     ' Alternately, you can pop up a connection dialog
     ' This method returns the connection string.
     'connectstring = factory.ConnectDlg()

     'DBに接続する
     Dim success As Boolean
     success = factory.Connect(connectstring)

     'インスタンスを生成
     Dim inst As CacheActiveX.ObjInstance
     Set inst = factory.New("User.Main.NewClass1")

     'Propertyに値をセット
     inst.i = 10
     inst.s = "new input from VBA!" & Now()

     'Cache'DBに保存 = .sys_Save
     inst.sys_Save

     '接続を閉じる = sys_Close
     inst.sys_Close
     Set inst = Nothing 

End If

End Sub

サブルーチンを実行すると、Cache'DBにデータエントリーができる

データを簡単に参照する方法
Cache'アイコン→管理ポータルを開き、右上のネームスペースをUSERに変更(大事)
システムエクスプローラ→SQLを開く
20180826-8.png
image.png
テーブルから、先ほど作成したUser.Main.NewClass1(ここでは、SQLルールにより、User_Main.NewClass1となっている)を選択し、右側のテーブルをクリック
20180826-9.PNG
以下のようにテーブルが表示される(画面はいくらかデータを入力してみたところ)
20180826-10.PNG

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0