Const dsn = "orcl" ' dsn Const user = "SCOTT" ' user Const pass = "tiger" ' pass Sub import() Dim conn As Object Dim rec As Object Dim tableName As String Dim strSQL As String DoCmd.SetWarnings False Set conn = CreateObject("ADODB.Connection") conn.Open "DSN=" & dsn & ";UID=" & user & ";PWD=" & pass & ";" strSQL = "SELECT TABLE_NAME FROM USER_TABLES WHERE PARTITIONED = 'NO' ORDER BY TABLE_NAME" Se
本連載はMicrosoft Access(マイクロソフトアクセス 以下、Access)を使って、リレーショナルデータベース(RDB)やSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得するものだ。 前回は、「CSVファイルの読み込み/書き出し」機能を追加するテクニックをお伝えした。 今回は、「DAO(Data Access Objects)」を利用してデータベースを操作するテクニックを解説していく。 DAOは、Access標準のデータベースエンジンで、データベースへのアクセスや操作を行うのに用いる汎用APIだ。単一システムのアプリケーションや小規模なローカルネットワークで使用するのに適している。なお、本稿で扱うDAOはデザインパターンの一つである「DAO(Data Access Object)パターン」とは異なるので、注意してほしい。 本題に入る前に…… 今回もこれまでと
EOFとは、最終レコードよりも後ろに移動しようとするとTRUEになるプロパティです。全レコードを参照するには、Do~LoopでEOFがTRUEになるまで、レコードを前に移動します。 レコードの移動方法は「Recordsetでレコード移動させる 」のページを参照してください。 RecordsetとEOFで全レコードを参照するVBA 下のMyEofプロシージャを作成しました。 実行すると、顧客マスターテーブルをRecordsetで開き、全レコードの会社名とTELをイミディエイトウィンドウに表示します。 ・ Do Until rs.EOF でレコードの最後までループします。 ・ rs.MoveNext で次のレコードに移動します。 Sub MyEof() Dim db As Database Dim rs As Recordset Dim i As Long Set db = CurrentDb
VBAからクエリを実行する方法は、いくつかありますが、ここではDoCmd.OpenQueryを説明します。 ナビゲーションウィンドウ(2003以前はデータベースウィンドウ)から、クエリをダブルクリックしたときと同じ動作をさせる場合は、DoCmd.OpenQueryを使用します。 ・構文 DoCmd.OpenQuery QueryName , View , DataMode ・引数 QueryName ・ 開く(実行する)クエリの名前を文字列で指定します。必須。 View ・ クエリをどのビューで開くか、下記のAcViewクラス定数で指定します。省略可。 名前 値 説明 acViewDesign 1 デザイン ビュー acViewLayout 6 レイアウト ビュー acViewNormal 0 (既定値) 標準表示 acViewPivotChart 4 ピボットグラフ ビュー acView
追加クエリ・更新クエリ・削除クエリといったアクションクエリをVBAから実行するには、主に次のようなケースによって処理方法を使い分けます。 アクションクエリが”クエリ”としてデータベースに保存されている場合 SQL文をVBAで動的に組み立てて処理する場合 ■DoCmdオブジェクトのOpenQueryメソッドを使った方法 ※この方法は、アクションクエリが”クエリ”としてデータベースに保存されている場合に使います。 ※SetWarningsをFalseとすることで、アクションクエリ実行前の確認メッセージを表示させずに、そのまま即実行させることができます。 ■SQL文で指定する場合(Databaseオブジェクトの「Execute」メソッドを使用) Dim dbs As Database Dim strRate As String Dim strSQL As String Beep strRate
Option Compare ステートメントでは、モジュール内で文字列を比較する方法を決定します。Option Compare には次の 3 種類の設定があります。 Option Compare Binary 文字列比較は大文字と小文字を区別して行われます。Microsoft Access 以外の Microsoft Office アプリケーションにおける既定の設定です。Access における既定の設定は Option Compare Database です。 Option Compare Text 文字列比較に大文字と小文字の区別はありません。この設定をモジュールの既定にするには、このステートメントをモジュールの宣言セクションに追加します。 Option Compare Database 文字列比較は、指定されたロケールの並び順序によって実行されます。既定では大文字と小文字を区別しません
サイトをご覧になった方からリクエストをいただきました。「特定のブックを開いているか、どうやってチェックしたらいいですか?」と。また、別の方から「'合計'という名前のシートがあるかどうか調べたい」というメールもちょうだいしました。これらは同じ考え方で実現できますので、一緒に解説しましょう。 ブックが開いているか調べる このテクニックは、実は「ファイルの操作」の「現在開いているブックの一覧を取得する」で解説しています。念のため同じコードを再度ご紹介します。 Sub Sample01() Dim wb As Workbook, flag As Boolean For Each wb In Workbooks If wb.Name = "Book1.xlsx" Then flag = True Next wb If flag = True Then MsgBox "Book1 を開いています。",
列を挿入する 複数列を挿入する 別シートの列に挿入する 列を挿入する Columns の引数に列番号または列名を指定すると、その列に挿入できます。 列「A」に挿入するには Columns(1).Insert または Columns("A").Insert を入力します。 Columns(1).Insert ' A 列に挿入 Columns("A").Insert ' A 列に挿入 ' Columns(3).Insert ' C 列に挿入 Range の引数にセル名を指定すると、そのセルを取得できます。EntireColumn からその列を取得できます。 セル「B2」の列に挿入するには Range("B2").EntireColumn.Insert を入力します。
VBA でシートをコピーするときは、Copy メソッドを使用します。ここでは、Copy メソッドの使い方について説明します。 Copy メソッドの使い方 Copy メソッドの構文は以下の通りです。 Copy メソッドではコピーしたシートを指定したシートの前、あるいは後ろに挿入するかを引数で指定します。 引数のシートを指定するときは Before や After の後にコロンとイコール := をつけて指定します。この := は、引数の順序に関係なく、特定の引数へ値を設定するときに用います。また、Before と After を同時に使用することはできません。 もし引数に何も指定しなかった場合は、新規のブックにコピーされます。 以下は、Sheet1 を Sheet2 の後の位置にコピーする例です。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く