• ベストアンサー

マイクロソフト系簡易データベースを解説しているヘルプファイル名

ARCの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.7

>システムが合わないです。 ん~、環境によって違いはありますからね。 お使いのOSのバージョン、VBのバージョン、DAOやADOといったミドルウェアの種類とバージョン、エラーが出るのであれば、その時のエラーメッセージ等があれば、より詳しい回答が付くかと思いますよ。 とりあえずカンでの回答なのですが、参照設定を見直されては如何でしょうか。 お書きになったURL(http://acvb.s19.xrea.com/doc/013.html)と同じような参照設定になっていますか? >また.覚える価値があるかどうかは疑問です。というのは. : >と変化しています(いずれも私の環境では動作しません。)。 に関しては、バージョンによる構文の違いではなく、複数の書き方がサポートされているってことです。 この辺の文法は、昔からさほど変わっていないので、VB6.0であればどちらの書き方で書いても動作すると思います。 (逆に言えば、動作しないのであれば、構文以外の面が原因であると思われます。) (以下、蛇足です) 確かに、コンピュータ関連は変化の早い業界ですよね。 次から次へ新技術が登場して、古くなれば容赦なく切捨てられる… 覚悟の上とはいっても、因果な商売だと思いますね、自分でも。 ミドルウェアの変遷にしても、MS社だけで15年間で3世代ですか。それ以外にもJAVAにはJAVAのミドルウェアがあったりと、数を挙げていけばきりが無いですねぇ。 結局、どんなやり方を採るせよそれぞれ一長一短があって、その時々でどれにするのかを決めていかなくてはならないんですよね。 もし、将来にわたって技術の変化が無いことが保障されているんであれば、心置きなく日々の勉強をサボることが出来るんですが(笑)。 >また.マイクロソフト社におけるデータベース関係の文法の変化が著しいので.自分にあったライブラリを用意して.以後.このライブラリだけを使用することを考えたほうが良いかと思います。 確かに、用途を限定するのであれば、そういう考え方も有るかと思います。 データの規模も行うデータ操作も(将来にわたって)一定の範囲内に限定されているのでしたら、恐らく仰るやり方の方が有利なのでしょう。 反面、複雑なデータ操作を行ったり、大量のデータを高速に処理する必要に迫られたり、といった局面がもし有るのだとすれば、やはり独自ライブラリでは限界が出てしまうのではと思います。 既存のライブラリを使えば数行で済む内容を、独自ライブラリのために数百行も費やして、テストや仕様書作成の手間もかけなくてはならない、といったコスト面での問題も出てくるでしょうし。

aramananto
質問者

お礼

どうやら原因が特定できました。 http://www3.kcn.ne.jp/~wataru/vb/ado.htm 等で cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & lstrPath & ";" のように末尾に半角の「;」を入れてOpenしていますが、これが抜けていたために lstrPath = App.Path & "\test.mdb" cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & lstrPath & ";" lstrSQL = "select * from student" lobjRS.Open lstrSQL, cnn, adOpenForwardOnly, adLockPessimistic のように「, cnn, adOpenForwardOnly, adLockPessimistic」を指定するような構文が全部エラー(オブシェクトを指定しろ)になりました。 またこのような宣言された語を使用しないでOpenする myRS.Open "Select * from 名簿テーブル" では.レコードを追記ができない状態でOpenされるために.わけのわからない英語のエラーメッセージ(3251)が表示され myRS.AddNew 以下の構文がつかえなくなります。こちらは.末尾の「;」がなくてもOpen可能です。 文法エラーが発生しない障害なのか.省略形を認めている使用なのかヘルプメッセージからは読み取れませんでした。 本来ならば「何というオブシェクトがどこで抜けているから.指定しろ」とか.「○文で指定した構文によってこの命令は使用できない。使用するのであれば○文に×という指定を追記しろ」くらいのエラーメッセージを表示すべき(私の使っていたデカコンはメモリーが1MB、HDDが128MBしかないにもかかわらずこのあたりのエラーチェックは厳格であった)でしょうか、マイクロソフトのエラーメッセージ・ヘルプメッセージでは省略されています。 ヘルプファイルを眺めた雰囲気からすると任意のところを変更しても他のところを変更しないですむような文章の書き方であり、マニアルとしては欠陥商品でしょう。 一応.Open, Close, Read, Writeの4命令が使えるようになったので、一応区切りとし、他の問題は別の質問として掲載したいかと思います。いろいろありがとうございました。

aramananto
質問者

補足

参照設定はあわせてありました。ただ.余分な設定の影響があるかもしれません。 使用していた機器のおそらくメインボードが半断線になり、振動で暴走するようになりました。原因の特定および復旧作業に手間取り応答が遅れたことをお詫びいたします。 ms-basicでISAMの制限を逃れるソフトを作ってありますので、ちょっと移植する程度です。速度は期待していません。ms-basic+ペンテ133MhzのPC-9821(1996年頃)の半分程度の速度しか、VB 6.0発売当時(1999年頃)のWindowsでは出ませんから。 また、大きな問題(ボリウム分割が必要程度の大きさ)には、マイクロソフトの製品では未対応です。この点は自作ソフトで目一杯苦しんだ内容です。従って対応済みです。 小さくない問題(同一ボリウム内の1/3程度の大きさ迄)では、複数キーの問題があります。私のソフトではシングルキーしか対応していません。当座の問題としては、キー以外の内容を元にして削除を行う時に全体を読みなおす必要があることです(ISAMではファイルハンドルが1キーあたり3つも使われる。システムに3+3必要で、ユーザーファイルを10個ぐらい同時openしているので、1キーしか作らなかった)。 またセクター長が固定なので最大長にあわせる必要がありファイルによっては90%以上が空白の場合があります。 複数フィールドに分割保存する方法(n88等の256固定フィールドの頃に良く使った方法。何人も絶句させてしまったので今はあまりやりたくないです)もありますが、データを固定して保存する方が楽で複数キーに対応する時にでも考えましょう。 小さな資源(1000個以下程度)では.システムが巨大過ぎるという問題があります。元々ボリウム分割を前提に作った内容なので、入力ボリウムが複数・出力ボリウムが複数・作業ボリウムが複数なんて余計な作業内容がありますから。 先日1つ移植して10000個1MB程度の少ないデータ量ですが.PC-9821(ペンテ133Mhz)で20分、Win98SE(ペンテ2400Mhz)で1時間程度と比較的高速に処理しているようです。これは、MS-Basicのメモリー制限で20-40KB程度以上のユーザーメモリーを使用するとシステムがハングするという特徴があります。そのために、少量づつ処理しているのでマルチタスク処理の場合に(他のタスク(Visual Basic本体等)の切り替えに使われてしまい)速度が遅くなりやすいためでしょう。処理単位を可変にして適当な場所を見つけるか、ご指摘のようにADOに変更するか、どちらにするか、今迷っています。

関連するQ&A

  • MySQLでデータベースを一つのファイルにひたすら保存していいのか

    MySQLでデータベースを一つのファイルにひたすら保存していいのか PHPでMySQLを使用しています。 データベースを作る時は以前から二つの方法を使っています。 ・データベースファイルを一定のデータ量になると分割する方法 ・データベースファイルを分割せず一つのファイルにひたすら保存していく方法 これはどっちがいいのでしょうか? 一つのデータベースファイルに保存し続けるとユーザーがアクセスする際は そのデータベースファイルにしかアクセスしないので共有ロックの関係で ユーザーが増えるほど分割した場合に比べてオープンが低速化したりしないでしょうか?

    • ベストアンサー
    • PHP
  • VisualBasic6.0で状況依存ヘルプを表示したいです。

    富士通PowerCOBOLV7.0で、プログラムを作っています。 そのプログラムで[ヘルプ]ボタンを押したら、HTML Help(*.chm)を起動するようにしたいのですが、COBOLから直接ヘルプファイルを起動できないようです。 そこで、COBOLから一旦VBのプログラムを呼んで、そのVisual Basicからヘルプファイルを呼ぶようにしようかと思います。 また、状況依存ヘルプとして、表示されている画面に関するヘルプを表示したいです。 Visual Basicから状況依存ヘルプを表示できるようなのですが、具体的にどうすれば良いのでしょうか。 MicroSoftのページを検索してみたけど、うまく見つけられません。 ヘルプファイルは、ヘルプましんで作りました。 Visual Basic6.0(ほぼ初心者)です。 よろしくお願いします。

  • COBOL コンパイラ

    COBOLの無料コンパイラをダウンロードしようと思い、Open COBOLを使用することにしたのですが、MinGWのインストールが上手くできません。 上手くできないというか、どのファイルを選択すれば良いのかわかりません。 また、Open COBOL以外でも、COBOLの無料コンパイラがあれば教えてください。 ちなみに言語初心者です。

  • ファイルの存在の有無を調べたい

    こんにちは. 現在VBで課題(研究?)をやっているのですが, 1.VisualBasicのOpenステートメントを使用してテキストファイルを作成し,   そこに書き込みをする 2.友達が作成したEXEをを呼び出す.   EXEでは,1で作成したテキストファイルに書かれたものを使用する ということをしたいのですが, Closeステートメントを使用して直後に2の動作に入るのですが そうするとファイルがありませとエラーがでてしまいます. でも,Closeステートメントでブレークポイントを置き, フォルダ内を見るとテキストファイルが存在していて, F5を押すとちゃんとEXEが起動するんです. 以上のエラーをなくすために For文でまわし, ファイルの存在の有無を調べ, ファイルの存在が確認された時点でFor文をBreakし, Exeを呼び出すという流れにしたいと思っています. しかし,ヘルプを見てもファイルの存在の有無を調べるステートメントや 関数が見つかりません. どうか助けてください.

  • プログラミングで

    当方、環境はUNIXでプログラミング初心者なのですが、 整数型二次元配列[5][5]宣言; ファイルポインタ宣言; 読み込みファイルオープン; ファイルから読み込みループ; 行の昇順ソート; 列の昇順ソート; 出力ループ; ファイルクローズ; リターンゼロ; これをプログラミングする場合は main(){ からテキストファイル名はsort.txtと仮定すると どのように書いたらいいのでしょうか?

  • 建設業会計ソフト「データベースのオープンに失敗しました」となります

    建設業会計ソフトの「アイサット」という物を使用しています。 96年頃に開発された物です。 XP Home Edition Version 2002 Service Pack 3で問題なく使用していました。 アイサット For Windows NT/Windows95 ファイルの種類は(*.idb)となっています。 パソコンを買い換え、 XP Professional  Version 2002 Service Pack 3 で使用しようとしたところ、 ソフトのインストールは出来ましたが、ファイルのオープンが出来ません。 メッセージは「データベースのオープンに失敗しました」です。 メーカーは既に解散しており、五里霧中の状況です。 OSの違いは、「ホーム」と「プロフェッショナル」の違いだけです。 何か、ヒント等浮かぶ方がいらっしゃいましたら、よろしくお願いいたします。

  • エクセル マクロ OPENメソッド

    いつもお世話になります。 OPENメソッドでファイルを開く時に、既にファイルを開いていて、内容を変更していると、「2重に開くと・・・」のメッセージが出てきます。 If Then ステートメントで、開いている時には処理を行わないようにしたいのですが、ヘルプで調べたりしたのですが、構文が分かりません。どなたか教えていただけますでしょうか。 また、このようなことが簡単に分かる書籍などご存知でしたら、あわせて教えていただけますでしょうか。

  • 建設業会計ソフト「データベースのオープンに失敗しました」というエラー

    建設業会計ソフトの「アイサット」という物を使用しています。 96年頃に開発された物です。 XP Home Edition Version 2002 Service Pack 3で問題なく使用していました。 アイサット For Windows NT/Windows95 ファイルの種類は(*.idb)となっています。 パソコンを買い換え、 XP Professional  Version 2002 Service Pack 3 で使用しようとしたところ、 ソフトのインストールは出来ましたが、ファイルのオープンが出来ません。 メッセージは「データベースのオープンに失敗しました」です。 メーカーは既に解散しており、五里霧中の状況です。 OSの違いは、「ホーム」と「プロフェッショナル」の違いだけです。 何か、ヒント等浮かぶ方がいらっしゃいましたら、よろしくお願いいたします。

  • ファイル名が決まっていないファイルのデータを取り出しひとつのファイルにまとめる

    初めまして。 マクロ超初心者です。まだまだ勉強中でして自分で作るのは困難です。しかし、来月には必要なので… よろしくお願いします! エクセル2000で以下のマクロを作成したいです。 1.フォルダ内のCSVファイルを開き、中のデータをひとつにまとめる。 (フォルダ名とファイル名、ファイル数はその時によって変わってきます。ファイル数はだいたい10個くらいです。ひとつのデータは20列50行くらいで列の項目を基準にまとめたいです。) 2.列を1列目に挿入し、2列目と3列目のデータを1列目に統合する。 3.1列目のデータを使用し、重複を調べる。重複がある場合はどちらかひとつを削除する。(できれば4列目のデータを比較し数値が少ないほうを削除したいです。) ファイルを開くところまでは検索して探し当てたのですが、ファイル名が決まっていないことが難しく詰まってしまいます。 Sub OpenAllBooks() Dim filename As String Dim openedbook As Workbook Dim isbookopen As Boolean filename = Dir(ThisWorkbook.Path & "\*.csv") Do While filename <> "" isbookopen = False For Each openedbook In Workbooks If openedbook.Name = filename Then isbookopen = True Exit For End If Next If isbookopen = False Then Workbooks.Open (ThisWorkbook.Path & "\" & filename) End If filename = Dir() Loop End Sub 詳しい方よろしくお願いします!

  • ファイルの読み込みについて

    いつもお世話になっています。 早速質問なのですが、VBのファイル処理において固定長データのテキストファイル読み込みの処理で、 固定長データの改行コードがChr(10)になっているデータがあります。 下記のどのOpenステートメントを使用しても、1行読み込みではなく全行読み込まれてしまうのです。 ↓ファイルモード (1)Open strInFile For Input As #intInFile (2)Open strInFile For Random As #intInFile Len=文字数 (3)Open strInFile For Binary As #intInFile ちなみに読み込みのモードは ・Line Input ステートメント ・Get ステートメント の2つを使用してみました。 改行コードの種類に依存せずにデータを1行読み込む方法を教えていただきたいです。