ちょうどOracleのDBをAccessでテーブルリンクするように
NOTESのDBをAccess2000からテーブルリンクさせたいのですが、
そのようなことは可能でしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

テーブルリンクのようにする事は難しいとは思いますが、アプローチを変えると、連携は可能です。



ノーツの開発ライセンスがある事が前提になりますが、ロータススクリプトから、ODBCドライバ経由でデータベース接続は実は可能です。
そのスクリプトを動かすマシン上にODBCドライバを定義しておく必要がありますが、ノーツ側からデータを吐き出すというアプローチならば、(トリガーがノーツ側になってしまうという欠点はありますが)とにもかくにも丸ごとエクスポートはできます。

これが代替案になるかは、要件によりますけどね。
参考になれば・・・。
    • good
    • 0
この回答へのお礼

またまたyou-mさんありがとうございます。
結局のところデータの安全性を考えると恐ろしいので、
ノーツDBをOracleに変換するという方向で考えてみます。

お礼日時:2002/03/12 20:08

以前は、notesDBのODBCドライバをロータスが”販売”していました。


しかし、この製品はすでに販売終了となっており、事実上Access等からノーツデータベースを参照するのは、不可能となってしまいました。

ノーツデータベースアクセス用の、汎用ActiveXなどをロータスが作らない事には、極めて難しい要件だと思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
ってことは、どちらかのDBを変換するしか方法はないということでしょうか?
うーん、まいったなー。

それかAccessとnotesと両方に互換性のある何かを間にかませて、、
うーん、データの安全性を考えるとそれも怖いですね。

お礼日時:2002/03/11 19:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QノーツのデータをVBScriptで取得したい

ノーツのデータをVBScriptで取得しようとしております。
そのために, 次のスクリプトを書きました。

Set objNotes = CreateObject("Notes.Notessession")
databaseName = "xxxxxxx.nsf"
Set objDB = objNotes.GetDatabase("",databaseName)
universalID = "ffdecaef1b87c101c925656e000c02dc"
Set objDoc = objDB.GetDocumentByUNID(universalID)
If objDoc.HasItem("Subject") Then WScript.Stdout.Write("Yes"&vbCrLf)
itemValueList = objDoc.GetItemValue("Subject")
WScript.Stdout.Write(TypeName(itemValueList)&vbCrLf)
WScript.Stdout.Write(itemValueList(0)&vbCrLf)
Set objDoc = Nothing
Set objDB = Nothing
Set objNotes = Nothing

結果は
Yes
String()
C:\temp\notesvalue.vbs(9,1) Microsoft VBScript 実行時エラー: 型が一致しません。: 'itemValueList'

とGetItemValueの値を取得することができません。

上の例では, Subjectというアイテムを取得することにしていますが,
その他のItemでもだめでした。

ノーツのバージョンは4.6a
OSはWindows 2000 Professional
でございます。

識者の方, どうすればGetItemValueから有効な値を取得できるかお教えください。
よろしくお願いいたします。

ノーツのデータをVBScriptで取得しようとしております。
そのために, 次のスクリプトを書きました。

Set objNotes = CreateObject("Notes.Notessession")
databaseName = "xxxxxxx.nsf"
Set objDB = objNotes.GetDatabase("",databaseName)
universalID = "ffdecaef1b87c101c925656e000c02dc"
Set objDoc = objDB.GetDocumentByUNID(universalID)
If objDoc.HasItem("Subject") Then WScript.Stdout.Write("Yes"&vbCrLf)
itemValueList = objDoc.GetItemValue("Subject")
WScript.Stdout.Write(TypeNam...続きを読む

Aベストアンサー

メッセージをそのまま受け取ると,

itemValueListが配列ではないにもかかわらず,
配列として扱っている(itemValueList(0)の部分)

からではないかと思われます。

単なる勘なんですけど,LotusScriptにおいて,
NotesDocumentクラスのGetItemValueの戻り値は
確かにString型の配列ですが,VBScriptで
暗黙的に型変換(文字列とか)されているのでは。

試しに7行目itemValueList = objDoc.GetItemValue("Subject")
の後に,Msgbox(IsArray(itemValueList))で確認して
みて下さい。(配列であればTrueが返るはずです)

またMsgbox(itemValueList)などとして,中身をが改行や
コロンで区切られた文字列リストであれば,Splitで配列を
作成してやればよいかもしれません。

っつーか,Subjectのアイテム数が1つだけ(配列ではない)
ことが確実であれば,そのまま
WScript.Stdout.Write(itemValueList&vbCrLf)とか
できないんでしたっけ?
↑Stdout.Write使った事ないんで,かなりテキトーです。
参考までにWScript.Stdout.Write(TypeName(itemValueList)&vbCrLf)
が何を標準出力に送信してるか教えて頂けると嬉しいです。

メッセージをそのまま受け取ると,

itemValueListが配列ではないにもかかわらず,
配列として扱っている(itemValueList(0)の部分)

からではないかと思われます。

単なる勘なんですけど,LotusScriptにおいて,
NotesDocumentクラスのGetItemValueの戻り値は
確かにString型の配列ですが,VBScriptで
暗黙的に型変換(文字列とか)されているのでは。

試しに7行目itemValueList = objDoc.GetItemValue("Subject")
の後に,Msgbox(IsArray(itemValueList))で確認して
みて下さい。(配列であれ...続きを読む

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

QRange("A1")⇔cells(1,1)の変換。

EXCELのマクロについて質問します。
Range("A1")⇒(1,1)
cells(1,1)⇒("A1")
に一発変換する方法を教えて下さい。
時間があるかた宜しくお願いします。

Aベストアンサー

こんなのでよろしいでしょうか?
range("A1") → Range("A1").Row & "," & Range("A1").Column
cells(1,1) → Cells(1, 1).Address(False, False)
()や""は付けていません

Qコマンドプロンプトを使ってipアドレスからコンピュータ名を知る方法

ipアドレスは分かっていますがコンピュータ名が分かりません。リモート接続ソフトなどは使えないので、それでコンピュータ名を調べることはできません。
コマンドプロンプトを使ってipアドレスからコンピュータ名を知る方法を教えてください!

Aベストアンサー

なんか回答がバラバラなので整理しましょう。
調査している自分自身が使用している端末は、Windows XPのPCであると仮定します。
また、調べるのは基本的に外部から名前解決可能な名前(No.2さんの言う"2"に相当する名前)とします。

パターン1:
対象のIPアドレスがWindows端末機で、自分が使用している端末と同じネットワークに属しているか同一のWINSサーバを参照しているとき……No.4さんの答えで検索できます。

nbtstat -A <IP Address>

パターン2:
ネットワーク管理者がDNSをきちんと管理しており、対象IPについても管理者の管理下にある場合……以下2つのいずれかの方法で検索できます。

  nslookup <IP address>

または

  nslookup -q=ptr <reverse ip>.in-addr.arpa.
  ex) 192.168.12.1 のIPを調べたい場合、以下のように入力する
  nslookup -q=ptr 1.12.168.192.in-addr.arpa.

  (DNSサーバで逆引きが設定されていないと、正しく検索できない場合があります)

パターン3:
上記以外の場合

外部から名前解決できないので、調べようがありません。または、調べてもそれが正しいホスト名である保証がありません。
そのIPの端末自体に設定されているホスト名を直接調べるしかありませんが、それには実際にそのIPの端末を操作して調べるしかありません。
つまり、No.2さんの回答となるのですが、
IPを使用しているのがWindows PCやUnixサーバなどである保証はないので、確認するコマンドはその端末の種類(OS)によって異なります。

なお、tracert (traceroute)を使用する、という回答がありますが、これはパターン1またはパターン2のいずれかまたは両方を満たしていないと表示されませんので、厳密には正しい答えとはいえません。
(たいていの場合、"tracert <IP address>" や "ping <IP address>"で用が足りてしまうことも多いので、必ずしも間違いではないのですが)

なんか回答がバラバラなので整理しましょう。
調査している自分自身が使用している端末は、Windows XPのPCであると仮定します。
また、調べるのは基本的に外部から名前解決可能な名前(No.2さんの言う"2"に相当する名前)とします。

パターン1:
対象のIPアドレスがWindows端末機で、自分が使用している端末と同じネットワークに属しているか同一のWINSサーバを参照しているとき……No.4さんの答えで検索できます。

nbtstat -A <IP Address>

パターン2:
ネットワーク管理者がDNSをきちんと管理して...続きを読む

Qノーツのログ取得(いつ、誰がアクセスしたのか)

ロータスノーツのデータベース(***.nsf)ファイルへ誰がいつアクセスしたのか、取得できるログとして、どんなものがあるのでしょうか?

私が調べてみた感じでは、
(1) ノーツクライアント上で対象DBアイコンを右クリック→データベース→プロパティ→「i」のようなアイコンクリック→ユーザーの使用状況で、ユーザー名と日付がわかる

(2) ドミノサーバー上のlog.nsfファイルを開き、Usage→by Userを見る⇒この場合はDB毎のアクセス状況はわからないようです。

もし、他に方法等ありましたら、よろしくお願いします。

ちなみにDBというのは、フリーのブログテンプレート「blogsphere 2.5.6」です。もちろん、このDBにこだわらず、ノーツ一般的なお話で結構です。

Aベストアンサー

基本的にその2つ(各DBのプロパティの情報タブにある使用状況とノーツログ)だけです。

ノーツログには、Database\~ビューUsage\~ビューが有りますが、全てユーザー別日付別
セッション単位の読み書き件数と開いていた時間がわかります。
各々2つずつビューを持っていますがカテゴリ表示の並びが違うだけで同じ文書です。
ビューで表示された各文書を開いても上記のレベルで情報をもっていないのであれば、
notes.iniのログ設定の問題かもしれません。

特定のデータベースでアクセスの時系列でわかりやすいのはプロパティの使用状況だと
思います。

Qアクセスで#エラーを表示させない方法は?

アクセス2000を使用しています。フォームにテキストボックスを貼り付けて、計算式を入れています。計算できない数値になると、#エラーと表示されます。目障りなので、#エラー という表示を消したいのですが、どうしたらよろしいでしょうか?宜しくお願い申し上げ候。

Aベストアンサー

はじめは「IIF関数とIsError関数を使用して」と考えたものの、IIF関数は引数がエラーになった時点で
エラーが返されてしまう(=元の木阿弥)ので、どうしたものかと思ったのですが・・・
とりあえず、「見た感じ、何も表示されていないように見える」ということで、『条件付書式』での対応と
いうのはいかがでしょうか。

1)当該フォームをデザインビューで開く
2)当該テキストボックスを選択
3)メニューで「書式(O)→条件付き書式(D)」を選択
4)『条件付き書式設定』ダイアログが開くので、『条件1(1)』枠の左端にあるコンボボックスで「式」を選択
5)上記コンボボックスの隣が1つのテキストボックスになるので、そこに以下のような式を入力
 IsError([テキスト0])
 ※上記の式は当該テキストボックスの名前が「テキスト0」の場合です。
6)上記テキストボックスの下、右から2番目に「A」と表示された、文字色を指定するボタンがあるので、
 その左の小さな「▼」をクリックし、当該テキストボックスの背景と同じ色(既定では白のはず)を選択
7)『OK』ボタンをクリックしてダイアログを閉じる

・・・以上です。
これで、『テキスト0』の計算式がエラーになった場合は、文字色が背景と同じ色になるので、「#エラー」と
いう表示はされていないように見える、という状態にすることができると思います。

はじめは「IIF関数とIsError関数を使用して」と考えたものの、IIF関数は引数がエラーになった時点で
エラーが返されてしまう(=元の木阿弥)ので、どうしたものかと思ったのですが・・・
とりあえず、「見た感じ、何も表示されていないように見える」ということで、『条件付書式』での対応と
いうのはいかがでしょうか。

1)当該フォームをデザインビューで開く
2)当該テキストボックスを選択
3)メニューで「書式(O)→条件付き書式(D)」を選択
4)『条件付き書式設定』ダイアログが開くので、『条件1(1)』枠の...続きを読む

QEXCELファイルをロータスノーツのデータベースに流し込めますか

EXCELファイルの表をロータスノーツのデータベースに流し込む、というのはできるでしょうか。
「流し込む」というのは、ファイル読込等の一括した方法で、ということです。
できそうな気がするのですが教えて下さい。

Aベストアンサー

再び登場しました。

基本的な詳しい流れは、R4.6で以下の通りです。

0.まず、Excelの表ををカンマで区切ったテキスト形式で保存し、
  列に対するフィールドとの対応の説明ファイル(拡張子 .COL)を作成します。
(通称.COLファイル)
1.データベース開いて、ソースデータを呼び出すビューを開きます。
  文章(Form)に流し込みたいフィールドが全部記述されているビューにします。
2.[ファイル - 呼び出し] を選択する。
3.[Tabular Text] を選択する。
4.ソースファイルの名前を選択する。
5.[呼び出し] をクリックします。
6.呼び出されたソースデータに適用するフォームを [使用フォーム] リストから選択する。
7.ヘッダ、フッダがある場合は、[ヘッダー行数] または [フッター行数] を選択する。
  (要するに注釈行のことです)
8.ソースファイルに [1ページの行数] の数値を入力する。
9.[形式:] リストは [主要文書] が選択された状態にしておく。
10.[形式ファイルの使用] を選択し、列の説明ファイル(.COL)を選択する。
11.[OK] をクリックします。

となります。
.COLファイルの作り方などはHelp Fileに書いてあります。
Help Fileは、
「ノーツの基本」から、「データベースの開発及び管理」の下にある、「ビューへ呼び出す/ビューから書き出す」の項目を探してみて下さい。
その中に、「表形式テキストをビューへ呼び出す」「列の説明(COL)ファイルを作成する」等の項目があると思います。

バージョンが違うとまたちょっと違うかもしれませんが、多分似たようなものがあるはずです。

では。

再び登場しました。

基本的な詳しい流れは、R4.6で以下の通りです。

0.まず、Excelの表ををカンマで区切ったテキスト形式で保存し、
  列に対するフィールドとの対応の説明ファイル(拡張子 .COL)を作成します。
(通称.COLファイル)
1.データベース開いて、ソースデータを呼び出すビューを開きます。
  文章(Form)に流し込みたいフィールドが全部記述されているビューにします。
2.[ファイル - 呼び出し] を選択する。
3.[Tabular Text] を選択する。
4.ソースファイルの名前を選択...続きを読む

QVB上で実行中の無限ループの止め方

今まで、CUIベースのBASICでのプログラムの経験はあるのですが
Visual系のBASICは初心者です。
原因はわかっているのでプログラムの修正はできるのですが
VB上でコンパイルして実行したときに無限ループに陥ってしまって
どうにもプログラムをとめられなくなります。
そんなことがないように、実行前に全てのプロジェクトを保存して
いますので、そんなに実害はないのですが、どうすればとめられるのでしょう・・
今現在は、タスクマネージャーから強制終了させています。

Aベストアンサー

無限ループの一番内側に
DoEvents
を入れておくと、ウィンドウ切替え->デバッガ終了操作が出来ますよ

危なそうなとこにも入れておくと、何かと安心です。

QAccessでテキスト型→数値型への変換方法

Access2000を使用しており、クエリを作成しています。
テーブルから[回答]というフィールドをひっぱってきています。
フィールド[回答]にて、最初の3文字に対応時間を入れており、
Mid関数にて対応時間を抽出しました。

対応時間:Mid([回答],1,3)

しかし、Mid関数でとったフィールドは文字列として認識されています。(Ex:001など)
この文字列を数値に変換する関数、又は方法などお教えくださいませ。
よろしくお願い致します。

以下にイメージ図を記載致します。
=================================
回答            対応時間
001 ●●●~        001
=================================
(対応時間を数値で扱えるようにしたい、ということです)

Aベストアンサー

対応時間が、整数(-32,768 ~ 32,767)であれば、

対応時間:CLng(Mid([回答],1,3))


また、長整数(-2,147,483,648~2,147,483,647)であれば、

対応時間:CLng(Mid([回答],1,3))

とすればokのハズです。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html


人気Q&Aランキング

おすすめ情報