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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
テーブルリンク リンク元を知りたい
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
-
4
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
7
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
8
クエリの保存場所
SQL Server
-
9
yes/no型のチェックができない(アクセス2003)
Access(アクセス)
-
10
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
11
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
-
14
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
15
アクセスVBAのMe!と[ ]
Access(アクセス)
-
16
Access_Formのデザインビュー画面を拡大表示
Access(アクセス)
-
17
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
18
Accessでブレークポイントを設定してないのに一時停止してしまう
その他(データベース)
-
19
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
20
Accessのフォーム上でSQLServerのデータを更新・追加する方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DB接続ができなくなって困って...
-
ADOを利用したODBC、OLEDB経由...
-
コンピュータ名の変更によってI...
-
SQLSERVERへのODBC接続について
-
SQLServer認証とWIndows認証
-
タイムアウト
-
drop user できない。ORA-01940
-
RDO と DAO の違いについて(S...
-
SQLServer,接続失敗時のエラー...
-
ACCESSからSQLServerのデータを...
-
ACCESS VBAでサーバー起動して...
-
VBでODBC接続して更新・削除で...
-
ACCESSからのODBC接続のみ応答...
-
SQLで同じDBに対し2つのコネク...
-
Oracle 8i コンマ(,)を含むデ...
-
GROUP BYでエラーが発生
-
バッチファイルからのBCP起動に...
-
PostgreSqlでFunctionの作成に...
-
既定のインスタンスと名前付き...
-
SQLのエラー(~付近に不適切な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB接続ができなくなって困って...
-
ACCESSからのODBC接続のみ応答...
-
SQLServer,接続失敗時のエラー...
-
ACCESSからSQLServerのデータを...
-
SQLで同じDBに対し2つのコネク...
-
drop user できない。ORA-01940
-
ACCESS VBAでサーバー起動して...
-
ADOを利用したODBC、OLEDB経由...
-
クライアントでの処理が遅い
-
SQL Serverの移行について
-
symfowareへのODBC接続方法
-
SQLServer認証とWIndows認証
-
SQL Server 2005 Standard Edit...
-
SQLServerの接続が突然できなく...
-
ACCESS ODBC 接続ダイアログ 非...
-
SQLSERVERへのODBC接続について
-
IISから起動したEXEがSqlServer...
-
SQLServer2005 Express リモー...
-
mdbに接続できません
-
MSDEの同時接続ユーザー制限
おすすめ情報