
SQLServerが利用できない環境にデータを持っていくため、以下のようなシステムを考えております。(テーブルのリンクは不可・手動でのデータのエクスポートは不可)
1.ACCESSのフォームに「データベース名」「テーブル名」を入力し、実行ボタン押下
2.ADOでSQLServerに接続
3.指定のテーブルと同じ構造のテーブルをACCESSに作成
4.SQLServerのデータをACCESSにINSERT
ここで質問なのですが、ACCESSは自分のデータベースとSQLServerのデータベースに同時に接続できますか?
同時接続した場合のACCESS/SQLServerの書き分けはどのようになるのでしょうか。
No.1ベストアンサー
- 回答日時:
普通に同時接続できるかと思います。
ちょっと手元に環境がないので間違いがあるかもしれませんが以下のような感じでしょうか。
ようは各データベース用にそれぞれ変数を用意してあげれば済むことかと。
Dim accessdb As Database
Dim sqldb As ADODB.Connection
Set accessdb = CurrentDb
Set sqldb = New ADODB.Connection
sqldb.open()
それぞれのDBに対して処理する
アドバイスありがとうございます。なるほど、片方はCurrentDBで接続、片方はADOで接続すればよいのですね。この二つを同時に一つのSQL文で扱うことはできるでしょうか?「Insert into accessDB.ユーザーマスタ Select sqldb.ユーザーマスター」みたいな。
No.3
- 回答日時:
#1です。
>この二つを同時に一つのSQL文で扱うことはできるでしょうか?
これはさすがに無理ではないかと思います。
2のお礼で書かれているようにSQLServerのデータをレコードセットに取り、1レコードずつInsertするしかないと思います。
回答ありがとうございます。あれから試行錯誤いたしまして、マクロ→データベース変換でODBCドライバを使用することにより、簡単にテーブルデータを取り込めるようになりました。何度もお返事ありがとうございました。
No.2
- 回答日時:
>ACCESSは自分のデータベース・・に接続できますか?
自分のとはカレントDB?ということですか?それとも他のAccessファイルにADOで接続するということですか?
カレントDBからADOでSQLServerに接続すればカレントDB内で処理できますが。
もしくは#1の方のいうように変数を宣言してカレントDBを変数にセットすればいいのでは。
Dim acdb As Database
Set acdb = CurrentDb のように。
’SQLServerに接続
Dim cnn As New ADODB.Connection
Dim rec As New ADODB.Recordset
' 接続を確立させる。
cnn.Open "Provider=SQLOLEDB;" & _
"Data Source=サーバー名;" & _
"Initial Catalog=サーバ上のデータベース名;", "sa", ""
’SQLを指定してレコードセットを作成する。
rec.Open "select * from テーブル名", cnn, _
adOpenKeyset, adLockOptimistic
他のAccessファイルに接続する場合はProvider=Microsoft.Jet.OLEDB.Jetのバージョン
に変えて接続を確立すれば出来ます。
質問内容と違っていたらゴメンなさい。
回答ありがとうございます。#1さんのお礼欄にも書いたのですが、一つのSQL文で同時に扱うことはできますでしょうか?それともSQLServerのデータをレコードセットに取り、1レコードずつInsertするしかないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
-
4
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
5
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
6
Accessのフォーマット時イベント
その他(データベース)
-
7
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
8
Accessのフォーム上でSQLServerのデータを更新・追加する方法
その他(プログラミング・Web制作)
-
9
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
10
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
11
accessでSQL実行時のテーブル名にdbo?
その他(データベース)
-
12
datetime型でNULL値を入れたい。
SQL Server
-
13
Access2010 「演算子がありません」エラー
その他(データベース)
-
14
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
15
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServer,接続失敗時のエラー...
-
DBに接続する時のオープンとク...
-
phpからsqlserverへの接続
-
SQLで同じDBに対し2つのコネク...
-
Access から SQLserver に接続...
-
コンピュータ名を変更するとSQL...
-
sqlで文字列を最後に追加したい
-
SQLCMDにて教えていただきたい...
-
ノートンの解約(「ライセンス...
-
Excel-VBAの「しばらくお待ちく...
-
SQLサーバー接続 特定のPCがWin...
-
IIS+SQLServer2008(2012,2014,2...
-
SQLのエラー(~付近に不適切な...
-
オラクルのエラー
-
MSDEまたはSQLServerでReadOnly...
-
ORACLEでのexportのbatファイル...
-
SQLSeverの新規登録で一般的な...
-
バッチファイルからのBCP起動に...
-
SQL Server時間切れについて
-
SqlDataReaderでの0件判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
drop user できない。ORA-01940
-
ACCESSからのODBC接続のみ応答...
-
SQL Serverの移行について
-
Access から SQLserver に接続...
-
SQLで同じDBに対し2つのコネク...
-
DB接続ができなくなって困って...
-
ODBCドライバの再インストール方法
-
OLE DBプロバイダを使ってADOで...
-
SQLServer認証とWIndows認証
-
SQLServerの接続が突然できなく...
-
データベースへ接続できない
-
SQLServer2000へのリモート接続...
-
クライアントでの処理が遅い
-
ACCESSからSQLServerのデータを...
-
SQLServer,接続失敗時のエラー...
-
ホスティングサーバ上のMySQLへ...
-
SQLサーバに対してのバッチファ...
-
ASP.NET(C#)からの接続方法
-
MySQLへの接続の種類について
-
LINUXからMS SQL Serverに接続...
おすすめ情報