• 締切済み

ADOを使えます。どのくらいのレベルでしょうか。

Accessの一つのmdbファイルをデータベースとして、Excelをインターフェイスとして、システムを作れます。具体的には、成績データベースを作り、ADOによってExcelのシートにデータベースのデータを抽出して取り出し、そこで入力・編集を行い、ADOによってデータベースのデータ変更を確定させるという方法で、一つのmdbファイルを複数の端末におけるExcelによって書き込んでいます。 こういうことができるレベルってどのくらいのレベルなのでしょうか。

みんなの回答

回答No.1

「どのくらいのレベルなのでしょうか」と疑問に感じるお気持ちは理解できますが、 明確なものさしが存在するわけではありませんので、難しい質問になっているよう です。 あくまでも個人的見識ですが、一般ユーザーとしては、アプリケーションを大変よく 勉強され、使いこなしていらっしゃると思います。それを本業とするような業界でな い限り、コンピューターに明るい方という評価を受けるのではないでしょうか。 ただ、説明の中で「mdbファイルを複数の端末で」という記述からSQLサーバーについて の経験はお持ちでないと推察します。具体的なトランザクション手法が明らかではあり ませんが、mdbを複数端末で同時に操作すると破綻を招く可能性があります。 もし、データベース系のアプリケーションに興味をお持ちでしたら、SQLサーバーの 学習と導入をお勧めします。その過程で固有のアプリケーションに依存しないデータ ベースの概念を習得なされば、さらなる発展があるのではないかと思います。

関連するQ&A

  • ADOを覚えれば可能?

    accessで複数のパソコンから同時にMDBファイルを開いて テーブルの追加・更新などを行いたい場合は、ADOの知識があれば可能ですか? 複数のPCで一つのファイルを開いた場合、 読み取り専用になってしまいテーブルの更新ができません。 VBAのADOを覚えれば回避できるのでしょうか?

  • Excel+mdbファイル

    一つの高校で成績データベースの構築を行いつつあります.担当者の知識はExcel(VBA含む)とAccess(VBA含む)とADOです.実際に構築した経験は 1.Excelのみの定期考査成績処理システム(ユーザー60以下) 2.Excel+ADO+mdbの調査書発行システム(ユーザー10以下) 3.Accessのみの大学入試出願管理システム(ユーザー10以下) があります.それぞれの感想は以下の様. 1.同一科目担当者は順番待ちで入力し,科目ごとにファイルを準備しているのでユーザーが多くても対応出来ました.それらの科目ファイルを一つのファイルに集約して統合表のようなものを作ります.しかし,統合表はデータベース的でないので複数年度集約利用する場合はマクロでデータベース形式に整形したり単位数を最入力したりしなければなりません. 2.は特に問題ありませんでした. 3.何と言っても同時入力のパフォーマンスが悪いです. そこで,今回は2.の手法で開発しました.問題はユーザーが60ぐらいにふくれあがることです.しかし,同時実行ユーザーは多くても数名だと思います.要点はデータの入力・編集はインターフェイスのExcelに入力表をシート上に展開し,作業は未接続状態で行い,mdbへの書き込みは瞬時に行なってしまうことで,接続の排他処理でのエラーを少なくしていることです.このようなシステム構築例をあまり知りませんので,ご経験のある方にアドバイス頂きたいと思います.

  • oracleとexcelのADOによる連携について

    お世話になります。 excelからADOでoracleのデータベースにある テーブルの必要なデータのみを抽出してexcelに 書き出そうとしています。 excelのvbaコードで、まず、ADOコネクションの生成として、 「cn.Open "Provider=OraOLEDB.Oracle;Data Source=" & "DB名" & ";User ID=hpsuser;Password=○○○;", "○○○", "○○○"」と書き、 ADOレコードセットの生成で、 「 rs.Open "~(1)~", cn, adOpenDynamic, adLockOptimistic, adCmdText」 と書いていますが、上記「~(1)~」の部分がかなり長いクエリ文になっているからなのか、 エラーがかかってしまいます。 単純なテーブルのデータを呼び出す事しかできないのか、又、 長いクエリ文のデータを抽出したい場合どの様にしたら良いのか、 どなたかご親切な方、ご教示頂けます様、宜しくお願いいたします。

  • ADO.Netで通常用いられるデータベースの形式は何ですか?

    ADO.Netで通常用いられるデータベースの形式は何ですか? 今まで作ったプログラムは、mdb形式のデータベースファイルを使ってきました。 ローカルPC1台で使用するデータベースなので、SQLServerは大げさだと思うので、今でもmdb形式を普通に使っているのなら、そのまま採用したいと思います。 よろしくお願いします。

  • Access起動中にエクセルからADOでデータの更新ができない

    こんばんは。原因がわからないので質問させてください。 SQLサーバーのデータをAccessのmdbへリンクテーブルしています。 (SQLサーバー → Access) 全て一つのパソコンで行なっています。(LANには接続していません) Accessのmdbファイルを起動している時に ExcelからSQLサーバーのAccessにリンクしている上記のテーブルへ ADOを使ってデータを追加しています。 (Excel → Access)  しかし、「rs.Update」の部分で  「ODBC--リンク テーブル'テーブル1'での更新に失敗しました。」 となってしまいます。 なので、一度mdbファイルを落として、コードを再開すると通るので ADOでExcel → Accessにデータを追加し終わってから再度mdbファイルを立ち上げています。 また同じ状態(mdbファイルを起動)で Excel → SQLサーバー へ更新クエリをしようとすると「時間切れになりました」となります。 (こちらもmdbファイルを落とすと再開できます。) いちいちmdbファイルを落とすのめんどうなのですが 回避する方法はありますか? cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Users\Documents.test.mdb" rs.Open "テーブル", cn, adOpenStatic, adLockPessimistic rs("フィールド") = True rs.Update '保存 rs.Close: Set rs = Nothing というコードを書いています。 Accessを落とせば正常に動きます。 ご教授よろしくお願い致します。

  • ADO.NETでバッチ処理は可能???

    22歳男性です。 今、ADO.NETを勉強中です。 で、このADO.NETを用いてバッチ処理を行うと先輩から言われました。 どのようなバッチ処理かというと、テキストファイルのデータを読み込んでSQLServerに書き込むというものです。 まぁバッチ処理なのでこんなことはよくあることだと思います。でも、自分は「ん?」と思うところがあります。 それはADO.NETを使うというところです。 ADO.NETというと、APS.NETの勉強中にでてきたので必ずユーザインターフェースを用いて処理を行うものだと思っていたんですが、バッチ処理にユーザインターフェースなんて普通は必要ないじゃないですか。 そこで質問なんですが、ADO.NETを用いてバッチ処理を行う場合、ユーザインターフェースがなくても行うことは可能なのでしょうか?また、可能な場合は、どのようなファイルになるのでしょうか?(拡張子が知りたいです) あと、ADO.NETを用いてバッチ処理を行うようなことが書かれてあるサイトをご存知でしたら教えていただきたいです。(サイトがピンポイントすぎてすみませんw) 以上、宜しくお願い致します。

  • エクセルからアクセスへADO 「_be.mdb」に追加するべき?

    リンクテーブルでtest.mdbとtest_be.mdbに分割した場合 エクセルからアクセスへADOでテ゛ータを追加する場合、 「test.mdb」と「test_be.mdb」のどちらに追加すればいいのでしょうか? 「test_be.mdb」はリンクテーブルとして「test.mdb」のテーブルのみ保存されています。

  • Excel ado処理について

    現在、Excel(インターフェース用)⇔(社内LAN経由)⇔Excel(マスターファイル×4)間で ADOを使用して、データ処理を行おうとしております。 (なお、今までは、画面更新OFFにしてファイルを素直にOPENして 各ファイルデータを格納して処理を行っていたのですが、 業務人員&量の拡大に伴い、Excelの競合が激しくなり、ADOによる処理へと 対応変更を考えております) マスターファイル×4はAccessのように、主キーが振ってあり、連結しております。 インターフェース用のExcelから各マスターファイルをADOで読み込み、 インターフェース用のExcelへとデータを転記する処理を作成中ですが、 なぜか、マスターファイル(A・B・C・D)のうち、Cのファイルのみ、データを10件ほど認識しておらず、 A=B=D≠Cとなってしまいます。 マスターファイルを直接開いて確認しますが、データ数は間違いなく一致しておりますが、 VBA上では認識しておりません。 自分なりに解析したところ、Cのファイルだけ、 "RS.MoveNext"の部分でデータが10件ほど飛んでいると思っております。 以下がそのソースですが、 どこが問題なのか?または、考えうる原因が他にあれば、ご教授いただきたいです。 本当に困っています。宜しくお願い致します。 --------------------------------------------------------------------- Sub StorageData() 'Frag初期値 SW_OK = True On Error GoTo ErrADO '取引先詳細 'ADO定型分 Set CN = New ADODB.Connection CN.Provider = "Microsoft.Jet.OLEDB.4.0" CN.Properties("Extended Properties") = "Excel 8.0" CN.Open Path00 & "反響データ\" & FileName01 Set RS = New ADODB.Recordset RS.Open SQL, CN, adOpenStatic, adLockReadOnly ReDim Data00(RS.RecordCount, 20) Ctr = 1 Do For i = 0 To 20 If Not RS.BOF Then Data00(Ctr, i) = RS.Fields(i) End If Next i i = 0 RS.MoveNext Ctr = Ctr + 1 Loop Until RS.EOF Ctr = Ctr - 1 ' ReDim Preserve Data00(Ctr, 20) Ctr = 0 Set RS = Nothing CN.Close 'お客さま詳細 'ADO定型分 Set CN = New ADODB.Connection CN.Provider = "Microsoft.Jet.OLEDB.4.0" CN.Properties("Extended Properties") = "Excel 8.0" CN.Open Path00 & "反響データ\" & FileNam

  • ネットワーク上のDBにアクセス時にエラー

    VB6.0 + Access2003を使用しています。 ネットワーク上にMDBがあり、複数の端末からアクセスしています。 MDBにはADO接続で、共有モードで開いています。 複数の端末から同時にOpenし、同じテーブルにアクセス(Select文実行) した場合に、 エラー番号:-2147467259 内容:Microsoft JET Database Engineでエラーが発生しました。     データベース"を開くことができません。アプリケーションで認識できない    データベースであるか、またはファイルが破損しています というエラーが発生します。(ファイルは破損していません) 3、4台で同時アクセスを何度が試していますが、 毎回このエラーが出ることはなく、エラーが出る原因がわかりません。 原因、対処方法などわかりましたら教えてください。 よろしくお願いします。

  • ADO使用か構造体等の使用か

    Excelでフォームを作って、そこからデータを吸い上げて保存用兼データ解析アプリケーションのデータ元となるようなCSVファイルへフォーム内容を書き込むというような、よくある操作を行うとします。 今までは、変数を宣言して配列を使ったり構造体を使ったりしていましたがデータベースを独学で学んでいるうちにVBAにもADOを使用したデータ操作が行える方法があることを最近知りました。 まだ、SQL的な書き方でものを作ったことが無いので実感が無いのですが上っ面だけ見ると細かく変数等を管理することが減るように思えるので今頼まれている内容にはADOを使用したものに挑戦してみようかと思っています。 経験者の方がいらっしゃいましたら、ADOを使用することの率直な利点と難点を聞かせてください。