
お世話になります。
最近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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- その他(データベース) Microsoft Accessについて 1 2022/06/06 16:20
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
このISAMでは、リンクテーブル・・
-
結合テーブルでINSERTする方法...
-
ビューのソートについて
-
マテリアライズドビューとスナ...
-
ERROR1062:Duplicate entry.......
-
SQLでの前検索・後検索
-
Accessでの稼働日数計算の方法
-
住所のDBテーブル、マスターの...
-
VBAでSQLServerへのODBC接続
-
Access昇順レコードを、5分割...
-
1つのSQL文で文字列を置換する...
-
Oracleで上書きImportはできま...
-
重複レコードの一括削除
-
同テーブルの差分レコードの抽出
-
Access VBAからエクセルに出力...
-
MySQLやSQliteの中のデータ検索...
-
Accessのテーブルデータを一気...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Oracleで上書きImportはできま...
-
ビューのソートについて
-
Accessのテーブルデータを一気...
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
マテリアライズドビューとスナ...
-
ORA-01401が表示され、データが...
-
このISAMでは、リンクテーブル・・
-
accessでレコード更新直後の反...
-
結合テーブルでINSERTする方法...
-
ERROR1062:Duplicate entry.......
-
IF NOT EXISTを使用するINSERT文
-
削除したテーブルを元に戻すこ...
-
「クリップボードにコピーされ...
-
left joinなどで結合対象のレコ...
-
ACCESS2010の最適化が中断される
-
ODBC接続で新しいレコードを追...
-
構文エラー : 演算子がありませ...
-
処理の途中で停止させ、再開さ...
おすすめ情報