![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
お世話になります。
最近AccessとVBAの学習を始めた者です。
Accessを用いて簡単な売上管理システムを作成しました。
システムを共有できるようにするためにSQLServerへの接続を試みています。
SQLServer内にAccessと同じデータ型のテーブルは作成済みです。
これにどのような方法でデータの追加などをするか調べても良く分かりません。
VBAでODBC接続を行うためのコードを記述するというところまで分かりました。
コードの例などあればすごく助かります。
私自身理解が不足しているため稚拙な文章ですがご了承ください。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
リンクテーブルを使うのが一番幸せな方法。
ローカルの DB 内には外部 DB のテーブルへのリンク情報が保存される。
フォーム、クエリ、レポート、VBA コードなどからは、ローカルの DB にあるテーブルも、リンクテーブルも、どちらも違いなく扱えるというメリットがある。
ODBC を媒体にして VBA コードから外部 DB へ接続し、レコード群のやり取りだけを行う方法も可能だが、自由度は減る。
ユーザー側にある Access の DB にはユーザーが操作するフォームやレポートがあるわけだが、これらとデータの仲介が全て VBA コードによる処理となるため、"非 VBA" で接続する方法がとれない。
具体的には、フォームやレポートのデザイン画面でレコードソースを設定することができなかったり、Access 側のクエリが使用できなかったりする。
UI とデータをそこまで分離させようとするのであれば、Access じゃないほうがもっと便利に開発できるんじゃないか? と個人的には思う。
Visual Basic 2015 Express とかのがもっと本格的に、もっと自由に開発できる。
VBA のコードで作成した DAO または ADO の Reocordset オブジェクトをフォームの Recordset プロパティに設定して読み書きするためのサンプルは下記を参照。
https://msdn.microsoft.com/ja-jp/library/office/ …
DB からデータを取得したり、DB のデータを更新する部分は SQL 文を中心に処理することになるかと思います。
データを更新する場合は SQL Server 側に作成したストアド プロシージャーを VBA から呼び出して適切な更新値を与えてあげるやり方が主でしょうかね。
「ADO SQL Server」 あたりで検索していくと調査がはかどると思います。
No.1
- 回答日時:
ここに一通りの命令方法が記されていました。
トランザクションはありませんでしたが。
http://itmemo.net-luck.com/vba-database/
トランザクション方法はここにありました。
http://sak.cool.coocan.jp/w_sak3/doc/sysbrd/vb_s …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
ACCESSで容量が50MBになった...
-
Oracleで上書きImportはできま...
-
このISAMでは、リンクテーブル・・
-
Accessのインポートについて(上...
-
CONNECT BYに関して
-
MySQLやSQliteの中のデータ検索...
-
住所のDBテーブル、マスターの...
-
Access VBAからエクセルに出力...
-
Accessでレコード削除ができな...
-
処理の途中で停止させ、再開さ...
-
ビューのソートについて
-
htmlコードで書かれた表にphpで...
-
データベースを設計するときに
-
L2SWはARPテーブルを持っている?
-
mysqlのupdate構文についての質...
-
Oracleのsystem表領域について
-
SQL、2つのテーブルで条件一致...
-
SELECT 文の NULL列は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
テーブルで一番古いレコードだ...
-
Oracleで上書きImportはできま...
-
このISAMでは、リンクテーブル・・
-
アクセス レコードセットを更...
-
ビューのソートについて
-
マテリアライズドビューとスナ...
-
処理の途中で停止させ、再開さ...
-
MS Accessを共有した際にファイ...
-
構文エラー : 演算子がありませ...
-
ORA-01401が表示され、データが...
-
accessでレコード更新直後の反...
-
重複クエリを使ったデータ削除
-
Accessでの稼働日数計算の方法
-
住所のDBテーブル、マスターの...
-
同一テーブルのデータを参照し...
-
ERROR1062:Duplicate entry.......
-
ACCESSで容量が50MBになった...
-
複数のテーブルを参照するselec...
おすすめ情報