• 締切済み

現在、会社のデータベースをaccessで構築しています。

現在、会社のデータベースをaccessで構築しています。 【 5台のPCで、1台のPCにメインのaccessを置き、他PCからはリンクして共有できるようにしています。 OSはそれぞれXP、メモリは512以上、accessは2000で、各PCのLANポート、LANケーブル、ハブ、はGiga bitに替えています。 管理者は、独学でaccessを使い始めたので、専門用語の使い方など至らない部分もありますが、ご了承願います。。。 】 accessを使いはじめてから1年くらいたちますが、検索するのにかなり時間がかかるようになりました。 【 業務内容は、主に顧客にTELして、会話の大まかな履歴を入力していくというカンジです。一覧の帳票フォームから選んだ顧客のボタンを押すと、詳細が書かれた単票フォームが表示され、それに入力していきます。 そのときの単票フォームが表示されるまでの時間が長いです。(10~30秒)→その単票フォームにサブフォーム、クエリがともに10個ほどはいっているため、遅いのだと思うのですが。ただ、これらは業務上不可欠なデータなので、そこは削れないのです。 テーブル、クエリ、フォームはそれぞれ100個以上あり、顧客データのみで6000件、会話履歴データのみ15000件ほどです。 】 それで何とか検索スピードを早くしたいとネットで調べ、できる限りのことは色々試してみました。 【 ギガビットの接続、テーブルのサブデータ名を『なし』にする、Autoexecで非表示のダミーフォームを開く、こまめな最適化 】 それで、一番手軽?で効果的なのが、テーブル自体はSQLに移行して、フロントエンドはaccessを使うことだという結論に達した(いろんな方の意見をまとめた)ので、早速お試しで、無償版のSQL server 2005 express をインストールしてみました。 インストール後、業務で使用しているメインのDBファイルをコピーして、ツール→アップサイジングと選択し、アップサイジングウィザードが表示されて、 ●『このデータベースに使用する SQL Server を指定してください。』 →(local)でないものを選択 ●ログイン、IDを入力 ●SQLデータベース名→既定の『upsized_detabase』 という流れで『次へ』のボタンを押すと下記のエラーメッセージが表示されます。 ---------------- 接続できませんでした。: SQLState:'01000' SQL Serverエラー:2 [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (ocnnect()). 接続できませんでした。: SQLState:'08001' SQL Serverエラー:17 [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Serverが存在しないか、アクセスが拒否されました。 ---------------- ここから先に進めなくて困っています。 Office2000のSP3を当てたらうまくいったという内容も拝見しましたが、SP3インストール後リトライしても変わらずでした。 accessが古いというのに加え、無償のSQLを使おうとしている環境自体がよろしくないというご指摘もあるとは思うのですが、その環境で構築されている方もいらっしゃるみたいなので、なんとかできる限りはこの環境でできないものかと模索している状況です。 (一方でaccess2000から、SQL2005expressにアップサイズするのは無理、という内容もみかけたりもしました。) どなたか解決策がおわかりの方、知恵を貸していただければ幸いです(^^) 長文最後まで読んでいただき、ありがとうございました!!

みんなの回答

  • Anzu4699
  • ベストアンサー率59% (26/44)
回答No.2

似たような事やった事あるので注意点を記載しておきます。 経験環境 +- ACCESS2003/SQLServer2005 +- ACCESS2003のアップサイジングウィザードの実行 ◆説明(1) >アップサイジングウィザードを試みましたが、 >最初と全く同じで、サーバ名がlocal、空白、 >マシン名-OFFICEの3つの選択項目があるだけで、 >どれを選んでもエラーになります。 >その後にOKボタンを押すと、『SQL Server ログイン』 >という小さい画面が出てきて、 この小さい画面は初めの接続が上手くいかないときに出る 再入力画面ですので説明は省きます ※無視して構わない、説明(2)以降が正常動作すれば出てきません。 ◆説明(2) >アップサイジングウィザードを使用したときは、 >『マシン名-OFFICE』しか表示されない "マシン名¥SQLEXPRESS"を、手入力してください 一度正常に登録ができると以降リストに記憶されます。 ◆説明(3) 説明(2)で出来ない場合、ユーザIDとパスワードを疑います、 ここで入力するユーザIDは、SQLServerに登録されてる ユーザIDを入力します SQLServerにちゃんと登録されているか確認して見てください ※管理ツール(SQL Server Management Studio Express)で  確認及び作成を行なってください。 ◆説明(4) 説明(3)で出来ない場合、SQLServer2005のTCP/IP解放を疑います ただし、SQLServer2005のインストールが、ACCESSが実行されるPC とは別のPCの場合のみ疑います。 SQLServer2005のTCP/IPが解放されているか確認して見てください ※管理ツール(SQL Server Management Studio Express)で  確認及び解放を行なってください。 ※同じPCにインストールされてる場合は、TCP/IP解放しなくて _良いと思う(未確認) 以上、参考になれば良いのですが。

ds-habataki
質問者

お礼

Anzu4699 様 ご回答ありがとうございます!! アップサイジングができました!! めっちゃ感動してます!! こういう質問が他にないのと、自分の知識がないのとで、PCに精通した人しかできないものだと、正直諦めていたところでした。。。 (実際は、『オーバーフロー』のメッセージがでましたが、その手の質問はけっこうあったので、それを参考にしてできました。) 説明(2)の部分が解決できた内容ですが、説明(3)(4)も今後使う事があると思うので、また参考にさせていただきます。 文章でしかお礼ができないのがもどかしいですが、本当にありがとうございました!! 他のご回答者様にも、この場をもってお礼申し上げます。

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

Access2000のアップサイジングウィザードは分からないのですが、 >→(local)でないものを選択 ・SQL ServerをインストールしたPCでテストしていますか?  そうであれば、(local)でないものとは何でしょう?  逆にリモートのSQL Serverの場合は、ファイアウォールの設定と、SQL Server自体のリモート接続の許可も必要になります。 ・管理ツール(SQL Server Management Studio Express)はインストールしてみましたか?  http://www.microsoft.com/downloads/details.aspx?familyid=5D76230D-580D-4874-8C7D-93491A29DB15&displaylang=ja ・アップサイジングウィザードの使用にはこだわりますか? どの方法でSQL Serverを使うのであれ、接続に必要な情報というのは限られています。 SQL Server 2005 Expressであれば、以下のものだけです。 ・サーバ(インスタンス名) マシン名\SQLEXPRESS ・ユーザ名、パスワード   SQL Server認証の場合 今回の場合、サーバが見つからないと言われているので、ローカル接続であれば、インスタンス名の指定(localhost\SQLEXPRESS)が正しくないか、サービスが上がっていないか、いずれにしても理由は限られると思います。

ds-habataki
質問者

お礼

jamshid6 様 ご回答ありがとうございます!! >・SQL ServerをインストールしたPCでテストしていますか? →はい、インストールしたPCでテストしています。  >そうであれば、(local)でないものとは何でしょう? →『(マシン名)-OFFICE』という名前の選択項目があったので、それを選びました。 >・管理ツール(SQL Server Management Studio Express)はインストールしてみましたか? →これはインストールしてなかったので、先ほどインストールしました。 今までSQL自体を操作できなかったのですが、これで一つ前進できました!! そしてこのときにサーバ名が(マシン名¥SQLEXPRESS)となっていました。 >・アップサイジングウィザードの使用にはこだわりますか? これ以外にテーブル(クエリも)を簡単に移動する方法がわからないので、ウィザードを使用したいと思っています。他にできる方法があって、ちょっと知識をつけてできるようなものがあるのなら、調べてやってみたいと思います。 確かにサーバ(インスタント名)が、『マシン名¥SQLEXPRESS』ではなく、『マシン名-OFFICE』となっているという点が、接続できない原因だということが分かりました。 ただ、SQL Server Management Studio Express開いたときに、 サーバ名『マシン名¥SQLEXPRESS』と表示されるのが、 アップサイジングウィザードを使用したときは、『マシン名-OFFICE』しか表示されないということは、access側で何か設定を変えないといけないのでしょうか、、、 さきほど、SQL Server Management Studio Expressをインストールしたあと、再度アップサイジングウィザードを試みましたが、最初と全く同じで、サーバ名がlocal、空白、マシン名-OFFICEの3つの選択項目があるだけで、どれを選んでもエラーになります。 その後にOKボタンを押すと、『SQL Server ログイン』という小さい画面が出てきて、再度サーバ名を選択するところがあるのですが、そこには ・local ・マシン名-OFFICE ・マシン名-OFFICE(上と同じもの) ・マシン名のみ と4つの選択項目がありました。 (どれを選んでも結果は同じです。) お礼の内容の中に、また質問を入れてしまい恐縮ですが、もし何かお分かりになることがありましたら、再度ご教授頂けたらと思います。

関連するQ&A

  • SQLクエリでデータベースが壊れる?

    AccessアプリでSQL Serverデータベースを更新しています。 データベースをODBCデータソースとして登録して、AccessdeそのODBCデータソースへのリンクテーブルを作っています。 データベースが何回か壊れたのですが、AccessVBAから発行したリンクテーブルへのSQLクエリでデータベースが壊れるようなことはあるんでしょうか? あるとしたら、そのクエリを発行すると必ず壊れると思うんですが・・・。 同じAccessアプリを使っても、データベースが壊れない環境もありますし・・・。 データベースが壊れた原因がわからなくて困っています。 Windows 7、SQL Server 2008 R2 Express です。

  • Access2000とADORecordsetのことで教えてください。

    他のネットワークPCにあるmdbデータベーステーブルにADOで接続し、開かれたRecordsetを、Access2000のフォーム(単票)に表示したいのですが、こんなことできますか?できるとすればどうすれば表示できるのですか。

  • アクセスからSQLサーバーへエクスポート時のデータベースの選択

    SQLサーバーには test1とtest2の二つのデータベースがあります。 アクセス2003のテーブルをSQLサーバーへエクスポートする時 test1に送ったりtest2に送ったりしたいのですが データベースを選択する画面が出てきません。 いちいちODBCデータソースアドミニストレータを呼び出しで 構成→規定のデータベースを以下のものに変更する をしないとだめですか? アクセスでエクスポート時に設定できる方法があれば教えてください。 よろしくお願いします。

  • MS AccessからSQL Serverに移行

    現在Accessを使ってデータの参照と、フォームでの入出力を行っています。海外拠点とVPNでつながっていて、今回そちらからも接続したいので無料版SQL Serverにデータを移行し、Accessはフロントエンドとしてフォームの利用のために使いたいのです。 データベース自体は画像やらPDFが置いてあるらしく500MBほどありますが、おそらくテーブルはあっても片手で数えられる程度、データは1000件ほどだと思います。 利用方法は部品番号を入力したら該当するデータシートがフォームに出力されるだけの単純で原始的なものです。多分エクセル+フォームでも再現可能です。発注時にそれを参照しつつ数量その他を決めて発注後、その発注データをテーブルに保存しているようです。 Accessはネットワーク越しの利用には向かないと聞きますので、SQL Serverにデータだけ移行させたいのですが、簡単にできますでしょうか? 一番簡単なのはAccessのデータベースがあるPCにリモート接続することですが、3人が同時利用できないのでこのような方法を検討しています(同時使用は最大でも3人たいてい2人まで、全体の利用者は7人ほど)。 Accessのアップサイジングという機能を使ってテーブルのデータを流し込み、ODBCでAccessからサーバ上のDBに接続するだけで動作するならそちらに移行したいです。 よろしくお願いいたします。

  • Accessで2種類のデータベースを結合する方法

    Accessで2種類のデータベースを結合する方法 AccessでMySQLとSQLServerというような2種類のデータベースをJOINしたSQLを使いたいと思います。 Access上でリンクしておいてクエリー定義すれば出来ることはわかっているのですが、高速化かつODBCの設定をしなくても済むように出来ればDAOを使って接続したいと思っています。 このような別データベースを結合するSQLは記述することは無理でしょうか? 又は別のリンクテーブルを使わなくても済む方法がありましたら、教えていただけると助かります。 Accessのバージョンは2007です。

  • Accessのアップサイジングウィザード

    Accessのアップサイジングウィザードを使用し、SQLServerへ テーブルとデータを移行しようと考えています。 Access2000、SQL Server 2005 Express Editionを使用して います。 アップサイジングウィザードで「既存のデータベースを使用する」 を選択すると移行できるのですが、「新しいデータベースを作成 する」を選択すると、移行できません。レポートに「Table was skipped or export failed」と表示されます。 (ログインユーザはcreate table権限があります。) アップサイジングウィザードの手順書には、、「新しいデータベース を作成する」を選択すると書いてあるので、うまくいかない理由を 知りたいと思います。 宜しくお願い致します。

  • データベースは何が良いでしょうか?

    現在、データベースを使用するシステムを構築しようとしています。 現在、想定している環境は、以下の通りです。 1.Windows2000上で動作する。 2.データベースの読み書き用のプログラムは、VB.NETを使用して開発する。 3.テーブルのレコード数は最大1000×365=約37万件 (1000件の顧客で、356日分のデータ) 4.1顧客につき、1月単位、1日単位でデータの表示及び印刷を行う。 現在、データベースの候補として、 ACCESS SQLサーバー オラクル MySQL等を想定しています。 私としては、パフォーマンス的に問題ないならACCESSにしたい。問題があるならSQLサーバーにしたいと考えております。理由は、VB.NETに合うのは同じマイクロソフトの製品だろうという漠然としたものです。また、ACCESSが一番簡単でてっとり早いような気がしたからです。 上記の中で、お薦めのデータベースがありましたらコメントください。またその理由もお願いします。(上記以外でもかまいません)

  • アクセス2000について

    アクセス2000でデータベースを作成しています。 幾つかのテーブルをリンクさせて、リンクしたテーブルからフィールドを選択してクエリを作り、そのクエリに基づいて単票形式のフォームを作成しました。 単票フォームの基になっているクエリを使って、表形式のフォームをオートフォームウィザードで作成しようとすると、「インデックスが有効範囲にありません。」というメッセージが出てきてフォームが作成できません。 どうしたらいいのでしょうか?誰か教えてください。

  • ACCESSのデータベースについて

    今回初めて質問します。 仕事で質問されたことがどうしてもわからないので質問します。 ある顧客のデータがACCESSでデータベース化されていて、 そのデータベースを東京にある本社のサーバにおいて地方にある支社から、 ACCESSで作ったフォームを使ってインターネット経由でDBの参照とレコードの更新、追加をするにはどのような方法があるのでしょうか? 今まで私なりに調べてみましたが"MYSQL"とか"ADO"を使うとかありましたが、 どの方法がよいのかわかりません。 何かいい方法があれば教えてください。 よろしくお願いいたします。

  • ACCESS2003フォーム入力

    ACCESS32003のフォームウィザードで作成した単票形式フォームで、データを表示することはできるのですが、データを変更(入力)することができません。 XP(SP3)でSqlserver2005のテーブルをODBC接続している環境です。 テーブルリンクは問題ありません。 フォームプロパティのデータ入力用を『はい』にしましたができませんでした。 入力可能にする方法を教えてください。宜しくお願いします。