
こんにちは。
以前も、ASPでAccessファイルへの接続について、こちらでお世話になりました。
別サーバで作ったショッピングシステムのサーバ移行をしています。
これは別の人が作ったシステムで、社内には誰もわかる人がいません。
(私が簡単なサイトが作れるので、話が回ってきた感じです)
ASPで作られているのですが、91個のASPファイルから同一Accessファイルへ接続している作りになっていることが今日分かりました。
コードに直接フルパスを記入するやり方ではなく、ODBCデータソースにファイルを選択してやり、DSN名で呼び出すやり方でコードが書いてあったので、調べてODBCデータソースにDBを選択しました。
しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。
コードは
Set cnn2=Server.CreateObject("ADODB.Connection")
cnn2.open DSN名
ODBCデータソースへの設定は、ユーザDSNとシステムDSNに
MS Access Driver(mdb)を追加し、追加する際にデータベース部分に接続したいAccessファイルを選択しています。
その時のDSN名を、コードに記載されている名前と同じDSN名にしました。
試しにDSN名ではなくフルパスでAccessファイルに接続したら、問題なく表示されました。
この現象は、以前使っていたサーバのODBCに設定が残っている為、以前のサーバを見にいってしまっているのでしょうか?
それとも、単純に私の設定が間違っているのでしょうか?
知識不足で分かりにくい表現ばかりだと思いますが、どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
> しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。
どのような確認をして、どういったエラーがが出て、以前のサーバーへ接続しようとしているという結論になったのかを説明してみては?
旧サーバーをシャットダウンする。
旧サーバー上の DSN 定義の名前を変える。
旧サーバー上の DSN 定義を削除する。
旧サーバー上の MDB を別の場所に移す/ファイル名を変える/削除する
など、どれでもまぁ 「旧サーバーの MDB への連絡路を絶つ」 という状態にしてから新サーバーでテストしてみましたか?
明らかに DSN 名を使って MDB へアクセスしているコードが書かれている ASP のページを表示しようとしても旧サーバーに接続しているのでしょうか。
エラーが出たページのコードをもう一度確認してみてはどうでしょうかね。
おそらく一部のページでは接続文字列を直接コードの中に書いちゃってるって線じゃないでしょうか。
# まさか新サーバーに作った DSN に旧サーバーの MDB へのパスが書かれているってことはないと思いますが。
この回答への補足
回答ありがとうございます。
まず、使用しているサーバへリモートデスクトップで入り、ローカルアクセスをしたところ、下記エラーが出ました。
Microsoft JET Database Engine
エラー '80004005'
パス '以前使っていたであろうサーバのパス' は正しくありません。パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。
次に、旧サーバでの状態ですが、確認が取れていない状態です。
これは早急に確認を取り、旧サーバ上の設定をクリアにして貰います。
コードについては、
<%
Dim sSQL2,rs2,cnn2
Dim lMetaDesc, lMetaKwds
Set rs2 = Server.CreateObject("ADODB.RecordSet")
Set cnn2=Server.CreateObject("ADODB.Connection")
cnn2.open DSN名
// Tags = request.querystring("Tags")
// Tags = 14
sSQL2 = "SELECT * FROM content WHERE Id=" & Tags
rs2.Open sSQL2,cnn2,0,1
if NOT rs2.EOF then
lMetaKwds=rs2("MetaKwds")
lMetaDesc=rs2("MetaDesc")
%>
<meta name="keywords" content="<%=lMetaKwds%>">
<meta name="description" content="<%=lMetaDesc%>">
<%
end if
rs2.Close
cnn2.Close
set rs2 = nothing
set cnn2 = nothing
%>
が全てです。
試しに、現サーバのDSN名を「例:AAA」として、オープンの部分を
cnn2.open AAA
としてみました。
(ODBCではデータソース選択済み、単純にDSN名を変えただけ)
その上で再度ローカルアクセスしてみましたが、エラー内容は変わりませんでした。
新サーバのDSNには新サーバのパスを書いています。
さすがに旧サーバのパスは書いてないです。
元々、海外サーバで運用し開発者も海外の方らしく、開発者の方に詳細を聞いて欲しいと上司に言っても、うやむやにされるので詳細が分からないまま、サーバでテストしている状態です。
こんな状態で質問してしまって、本当にすみません。
よろしくお願い致します。
昨日、接続部分だけのコードが書いてあるファイルを発見しました。
原因判明です。
ありがとうございました。ご回答、参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- ビデオカード・サウンドカード PCに接続したイヤフォンのマイクが使えません。 3 2022/10/22 11:07
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スパムメールの攻撃に困ってい...
-
IEでは このページは表示できま...
-
iOS4で…
-
PHPとSQLについて
-
ADSL接続でプロキシサーバーを...
-
yahoo!オークション、特定のサ...
-
新しいホームページにドメイン...
-
教えて!gooにつながりにくい。
-
会社のサーバーと自宅のパソコ...
-
VPNに接続すると、インターネッ...
-
YBBのかたへ!以下のHP見れます...
-
マイクラ統合版Windows7できま...
-
【minecraft】サーバーに接続で...
-
アクセスログについて
-
こんなURLは可能ですか?
-
さくらレンタルサーバーのホー...
-
サーバーのPCでログイン以降、...
-
お勧めサーバー教えてください。
-
PHP MYSQL でサブクエリを使いたい
-
サーバーへのアクセス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
winscpのエラー
-
サービスIPって何ですか?
-
WTSについて
-
VNCでログインする方法を教えて...
-
ASPでAccess接続 ODBCの設定に...
-
インターネットの履歴はサーバ...
-
他人名義でのインターネットで...
-
【minecraft】サーバーに接続で...
-
前略プロフィールというサイト
-
タブレットのGoogleChromeでサ...
-
Cookieの語源は?
-
昔、LAN上で使っているコンピュ...
-
ファイルの共有の仕方
-
パソコン歴だけは長いけど技術...
-
さくらレンタルサーバーのホー...
-
LinkStationサーバーのデフラグ...
-
クラスタリングとpcAnywhere
-
Local Area Network : Windows...
-
離れた拠点にあるPC内のデー...
-
このurlに接続できません。
おすすめ情報