ExcelでVBAを使用してAccessデータベースにアクセス
8350 ワード
VBAアクセスアクセスアクセスアクセスアクセスデータベース
1.汎用自動化言語VBA
VBA(Visual Basic For Application)は、Excelの一般的な操作を自動化したり、カスタムソリューションを作成したりする汎用自動化言語です.
ExcelでVBAを使用するメリット:固定、重複するタスクプログラムを自動化し、作業効率を向上させる. は複雑なデータ処理と分析を行うことができる. Excel関数、ツールバー、メニュー、およびインタフェースをカスタマイズできます. は、複数のデータベースに接続し、対応する操作を行うことができる. マクロはVBAの簡単な応用である.マクロはVBAの作成、マクロの録画の2つの方法で得ることができる.通常はマクロを録画してから、得られたマクロに基づいて文の最適化調整を行い、最後に所望のマクロを得る.
2.ExcelでVBAを使用してアクセスデータベースを操作する
「誰が菜鳥がデータ分析をしないと言っているのか(ツール編)」第4章では、レポートを自動化し、入力日に応じてAccessデータベースから関連データをExcelに抽出する操作について説明します.
VBAエディタを開くには、次の2つの方法があります. Excel→開発ツール→Visual Basic:VBEを開いた後、挿入をクリックしてモジュールを選択すると、その項目の下に空白モジュールを新規作成できます. Excel→開発ツール→挿入→コントロール→右クリックコントロール→マクロの指定:マクロを直接コントロールにバインドして編集できます. コードを作成する前の準備を行います. Visual Basic→ツール→ 参照:参照 Microsoft ActiveX Data Objects 2.x Library、そうでない場合は、実行コードに「ユーザー定義タイプ未定義」のプロンプトが表示されます. Excelでは、VBAを使用して、入力した日付に基づいてAccessデータベースから該当するデータを抽出し、Excelテーブルに挿入します.
マクロはボタンコントロールにバインドされています.このボタンをクリックすると、入力日プロンプトボックスがポップアップされ、プロンプト入力日に応じてデータベースからExcelテーブルにデータを抽出できます.
コードでアクセスするデータベースは、Excelテーブルと同じディレクトリの下にあるため、ThisWorkbook.Pathで構築されたデータベースパスです.データベースの絶対パスも使用できます.
3.参考資料 VBA ADO接続アクセスデータベース 転載先:https://www.cnblogs.com/strivepy/p/10589577.html
1.汎用自動化言語VBA
VBA(Visual Basic For Application)は、Excelの一般的な操作を自動化したり、カスタムソリューションを作成したりする汎用自動化言語です.
ExcelでVBAを使用するメリット:
2.ExcelでVBAを使用してアクセスデータベースを操作する
「誰が菜鳥がデータ分析をしないと言っているのか(ツール編)」第4章では、レポートを自動化し、入力日に応じてAccessデータベースから関連データをExcelに抽出する操作について説明します.
VBAエディタを開くには、次の2つの方法があります.
Sub ()
' AdoConn
Dim AdoConn As ADODB.Connection
'
Dim MyData As String
'
Dim D1 As Date
'
Dim D2 As Date
' Ecxel
Dim N As Integer
' SQL
Dim strSQL1 As String
' SQL
Dim strSQL2 As String
' SQL
Dim strSQL3 As String
' SQL
Dim strSQL4 As String
'
Set AdoConn = New ADODB.Connection
' , Excel , “ .accdb”
MyData = ThisWorkbook.Path & "\ .accdb"
' D1
D1 = InputBox(" , :2011-9-4", " ")
' D2 D1+1
D2 = D1 + 1
' N
N = ActiveSheet.Range("C1").End(xlDown).Row + 1
Debug.Print N
' , MyData
With AdoConn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyData
End With
'
strSQL1 = "SELECT count( ID) FROM WHERE " & D2 & "# AND >=#" & D1 & "#"
' ,
strSQL2 = "SELECT count( ID) FROM (SELECT DISTINCT ID FROM WHERE " & D2 & "# AND >=#" & D1 & "#)"
'
strSQL3 = "SELECT count( ), sum( ) FROM WHERE " & D2 & "# AND >=#" & D1 & "#"
' ,
strSQL4 = "SELECT count( ID) FROM (SELECT DISTINCT ID FROM WHERE <=#" & D1 & "#)"
'
ActiveSheet.Cells(N, 3).CopyFromRecordset AdoConn.Execute(strSQL1)
'
ActiveSheet.Cells(N, 4).CopyFromRecordset AdoConn.Execute(strSQL2)
'
ActiveSheet.Cells(N, 5).CopyFromRecordset AdoConn.Execute(strSQL3)
'
ActiveSheet.Cells(N, 7).CopyFromRecordset AdoConn.Execute(strSQL4)
'
'If AdoConn.State = adStateOpen Then
' MsgBox " "
' AdoConn.Close
'End If
MsgBox " "
'
Set AdoConn = Nothing
End Sub
マクロはボタンコントロールにバインドされています.このボタンをクリックすると、入力日プロンプトボックスがポップアップされ、プロンプト入力日に応じてデータベースからExcelテーブルにデータを抽出できます.
コードでアクセスするデータベースは、Excelテーブルと同じディレクトリの下にあるため、ThisWorkbook.Pathで構築されたデータベースパスです.データベースの絶対パスも使用できます.
3.参考資料