復刻その２ アクセスVBA講座 基礎編

#DoCmdオブジェクト（基礎編）
#■Contents

 ０１　Closeメソッド 	０２　OpenForm メソッド 	０３　OpenReport メソッド
 ０４　OpenQuerメソッド 	０５　Maximize メソッド 	０６　Minimize メソッド
 ０７　Restore メソッド 	０８　Hourglass メソッド 	０９　SetWarnings メソッド
 １０　ShowToolbar メソッド 	１１　GoToControlメソッド 	１２　GoToRecordメソッド
 １３　ShowAllRecordsメソッド 	１４　SelectObject メソッド 	１５　CopyObject メソッド
 １６　Rename メソッド 	１７　DeleteObject メソッド 	１８　CancelEvent メソッド
 １９　Requery メソッド 	２０　RunSQL メソッド 	２１　SendObject メソッド
 ２２　TransferText メソッド 	２３　TransferSpreadsheet メソッド 	２４　Quit メソッド

##０１.Closeメソッド

 【書式】　DoCmd.Close [objecttype, objectname], [save]

 　　指定した Accessウィンドウを閉じます。引数 objecttype および objectname を指定しないと、objecttype には acDefault (既定値) が使われ、アクティブ ウィンドウが閉じられます。

 引数 	内容
 objecttype 	acDataAccessPage、acDefault (既定値)、acDiagram、acForm、acMacro、acModule
 acQuery、acReport、acServerView、acStoredProcedure、acTable
 objectname 	引数 objecttype で選択した種類のオブジェクトの名前を文字列式で指定します。
 save 	acSaveNo 	保存せずに閉じます。
 acSavePrompt (既定値) 	オブジェクトが保存されていない場合は、オブジェクトを保存するかどうかを確認するダイアログ ボックスが表示されます。
 acSaveYes 	保存してに閉じます。

 　次の例は[F_初期設定] フォームを閉じ、プロンプトを表示せずに変更を保存します。
```vb
 Private Sub cmd閉じる_Click()
   DoCmd.Close acForm, "F_初期設定", acSaveYes
 End Sub
```

##０２.OpenForm メソッド

 【書式】DoCmd.OpenForm formname[, view][, filtername][, wherecondition][, datamode][, windowmode]

　フォームをフォーム ビュー、デザイン ビュー、プレビュー、データシート ビューのいずれかで開きます。フォームを開くときのデータ入力モードやウィンドウモードの設定や、フォームで表示するレコードを制限することができます。

 引数 	内容
 formname 	フォーム名を文字列式で指定します。
 view  	acDesign、acFormDS、acNormal (既定値：フォームビューで開きます)、acPreview
 filtername 	クエリの名前を文字列式で指定します。
 wherecondition 	SQL の WHERE 句を文字列式で指定します。 WHEREを指定する必要はありません。
 datamode 	acFormAdd、acFormEdit、acFormPropertySettings　(既定値)、acFormReadOnly
 windowmode 	acDialog、acHidden、acIcon、acWindowNormal　(既定値)

 　次の例は[F_名簿登録]をフォーム ビューで開き、フォームには山田 一郎のレコードが表示されます。

```vb
 Private Sub ｃｍｄ開く_Click()
 　　　 DoCmd.OpenForm "F_名簿登録"", , ,"氏名 = '山田 一郎'"
 End Sub
```

##０３.OpenReport メソッド

 【書式】DoCmd.OpenReport reportname[, view][, filtername][, wherecondition]

 　レポートをデザイン ビューまたはプレビューで開くか、またはレポートの印刷をします。

 引数 	内容
 reportname 	レポートの名前を文字列式で指定します。
 view 	acViewDesign，acViewNormal(既定値)，acViewPreview
 filtername 	クエリの名前を文字列式で指定します。
 wherecondition 	SQL WHERE 句を文字列式で指定します。WHERE を指定する必要はありません。

 　次の例は[R_名簿]レポートをプレビューで開きます。
```vb

 Private Sub ｃｍｄ開く_Click()
 　 DoCmd.OpenReport "R_名簿", acViewPreview
 End Sub
```


##０４.OpenQuerメソッド

 【書式】　DoCmd.OpenQuery queryname[, view][, datamode]

 　　選択クエリやクロス集計クエリを、データシート ビュー、デザイン ビュー、印刷プレビューのいずれかで開きます。また、アクションクエリを実行できます。

 引数 	内容
 queryname 	クエリの名前を文字列式で指定します。
 view 	acViewDesign、acViewNormal (既定値)、acViewPreview
 datamode 	acAdd、acEdit (既定値)、acReadOnly

 　次の例は、[Q_更新]アクションクエリを実行しています。
```vb
 Private Sub 更新_Click()
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Q_更新"　’アクションクエリを実行しています
    DoCmd.SetWarnings True
 End Sub
```


##０５.Maximize メソッド

 【書式】DoCmd.Maximize

 　アクティブ ウィンドウを、Access のウィンドウと同じ大きさに拡大します。

 　次の例は、フォームを最大で開きます。
```vb
 Private Sub Form_Open(Cancel As Integer)
   DoCmd.Maximize
 End Sub
```

##０６.Minimize メソッド

 【書式】DoCmd.Maximize

 　アクティブ ウィンドウをタイトル バーに変えて、Access ウィンドウの下部に表示します。このメソッドは、オブジェクトを開いたまま、ウィンドウを非表示にするときに使用します。

 　次の例は、アクティブ ウィンドウをタイトル バーに変えて、Access ウィンドウの下部に表示します。
```vb
 Private Sub cmd最小化_Click()
 　 DoCmd.Minimize
 End Sub
```

##０７.Restore メソッド

 【書式】DoCmd.Restore

 　最大化されたウィンドウや最小化されたウィンドウを元のサイズに戻します。オブジェクトが最小化されている場合は、SelectObject　メソッドを使って選択してから、このメソッド を使って元のサイズに戻します。

 　次の例は、フォームを元のサイズで表示しています。
```vb
 Private Sub Form_Open(Cancel As Integer)
   DoCmd.Restore
 End Sub
```
##０８.Hourglass メソッド

 【書式】DoCmd.Hourglass hourglasson

 　マウスポインタを砂時計の形に変えるます。このメソッドを使用すると、プログラムが実行中であることを視覚的に示すことができます。プログラムの実行に時間がかかる場合に使用すると便利です。

 引数 	内容
 hourglasson 	砂時計ポインタ を表示するには、True を使います。

 　次の例は、マウスポインタを砂時計の形に変えて、処理を実行し、処理が終了した後マウスポインタを元の形に戻しています。

  DoCmd.Hourglass True

   ' 時間のかかる処理

  DoCmd.Hourglass False


##０９.SetWarnings メソッド

 【書式】DoCmd.SetWarnings warningson

 　システム メッセージのオン/オフを切り替えます。Visual Basic でシステム メッセージの表示をオフにした後は、オンに戻しておく必要があります。

 引数 	内容
 warningson 	システムメッセージの表示をオンにするには True を使い、オフにするには False を使います。

 　次の例は、システム メッセージをオフにして、[T_入力チェック]テーブルの全レコードを削除しています。

 Private Sub cmd削除_Click()
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE * FROM T_入力チェック"
    DoCmd.SetWarnings True
 End Sub


##１０.ShowToolbar メソッド

 【書式】DoCmd.ShowToolbar toolbarname[, show]

 　Access の組み込みツールバーまたはカスタムツールバーの表示と非表示を切り替えます。

 引数 	内容
 toolbarname 	ツールバーの名前を文字列式で指定します。
 show 	acToolbarNo，　acToolbarWhereApprop，　acToolbarYes (既定値)

 　次の例は、レポートを開くときに[印刷]ツールバーを表示し、レポートを閉じるとき、このツールバーを非表示しています。

 Private Sub Report_Open(Cancel As Integer)
    DoCmd.ShowToolbar "印刷", acToolbarYes
 End Sub

 Private Sub Report_Close()
    DoCmd.ShowToolbar "印刷", acToolbarNo
 End Sub


##１１.GoToControl メソッド

 【書式】DoCmd.GoToControl controlname

 　指定したフィールドまたはコントロールにフォーカスを移動します。引数 controlname にはコントロール名だけを指定します。

 引数 	内容
 controlname 	アクティブ フォームまたはデータシートのコントロールの名前を文字列式で指定します。

 　次の例は、[cmd開く]コマンドボタンにフォーカスを移動しています。

 Private Sub テキスト2_LostFocus()
    DoCmd.GoToControl "cmd開く"
 End Sub

 ※このアクションは「 Me.ｃｍｄ開く.SetFocus」と同じ動作をします。


##１２.GoToRecordメソッド

 【書式】DoCmd.GoToRecord [objecttype, objectname][, record][, offset]

 　　開いているテーブル、フォーム、クエリの結果セットで、指定したレコードをカレントレコードにします。

 引数 	内容
 objecttype 	acActiveDataObject (既定値)、acDataForm、acDataQuery、acDataTable
 objectname 	引数 objecttype で選択した種類のオブジェクトの名前を文字列式で指定します。
 record 	acFirst、acGoTo、acLast、acNewRec、acNext (既定値)、acPrevious
 offset 	引数 record にacNextまたは acPreviousを指定した場合は、前方または後方に移動するレコード数、引数 record にacGoToを指定した場合は移動する先のレコードを、数式で指定します。

 　次の例は、[cmd次]ボタンをクリックすると、次のレコードをカレントレコードにしています。

 Private Sub cmd次_Click()
 On Error GoTo Err_cmd次_Click

  DoCmd.GoToRecord , , acNext

 Exit_cmd次_Click:
  Exit Sub

 Err_cmd次_Click:
  MsgBox Err.Description
  Resume Exit_cmd次_Click
 End Sub


##１３.ShowAllRecords メソッド

 【書式】DoCmd.ShowAllRecords

 　テーブル、クエリの結果セット、フォームですべてのレコードが表示されます。このメソッドによってフォームやサブフォームのレコードの再クエリが行われ、結果にはレコードの変更や新しいレコードが反映されます。



##１４.SelectObject メソッド

 【書式】DoCmd.SelectObject objecttype[, objectname,InDatabaseWindow]

 　オブジェクトを選択します。フォーカスを持つことのできるオブジェクトに対してのみ実行できます。このメソッドを実行すると、指定したオブジェクトにフォーカスが移動し、オブジェクトが非表示になっている場合はオブジェクトが表示されます。次の例のように、これから操作するオブジェクトを選択するときに使うこともあります。

 引数 	内容
 objecttype 	acDataAccessPage、acDiagram、acForm、acMacro、acModule、acQuery
 acReport、acServerView、acStoredProcedure、acTable
 objectname 	引数 objecttype で選択した種類のオブジェクトの名前を文字列式で指定します。
 InDatabaseWindow 	省略可能です。データベース ウィンドウでオブジェクトを選択するには、True を使います。既に開いているオブジェクトを選択するには、False を使います。この引数を指定しないと、False (既定値) が使われます

 　次の例は[F_印刷開始]フォームを選択して、このフォームを閉じています。

 Private Sub コマンド1_Click()
  DoCmd.Close acReport, Reportname
  DoCmd.SelectObject acForm, "F_印刷開始"　’-----------------?
  DoCmd.Close　　　　　　　　　　　　　　　’?で選択したフォームを閉じます
 End Sub



##１５.CopyObject メソッド

 【書式】DoCmd.CopyObject [destinationdatabase][, newname][, sourceobjecttype][, sourceobjectname]

 　指定したオブジェクトを別のデータベースにコピーします。また同じデータベース に新しい名前でコピーします。このメソッドでは、引数 destinationdatabase と引数 newname のどちらか一方または両方を指定する必要があります。これらの引数を指定しないと、sourceobjecttype にはacDefault (既定値) が使われ、データベースウィンドウで選択されたオブジェクトがコピーされます。データベースウィンドウでオブジェクトを選択するには、SelectObjectメソッドを使うことができます。

 引数 	内容
 destinationdatabase 	コピーする先のデータベースを示すパスおよびファイル名を文字列式で指定します。カレントデータベースを選択する場合は、この引数を指定しません。
 newname 	コピーするオブジェクトの新しい名前を文字列式で指定します。他のデータベースへ同じ名前でコピーする場合は、この引数を指定しません。
 sourceobjecttype 	acDataAccessPage、acDefault (既定値)、acDiagram、acForm、acMacro
 acModule、acQuery、acReport、acServerView、acStoredProcedure、acTable
 sourceobjectname 	引数 sourceobjecttype で選択した種類のオブジェクトの名前を文字列式で指定します。

 　次の例は[T_学科]テーブルを同じデータベース内に[T_学科Backup]という名前でコピーします。

 Private Sub cmdcopy_Click()
 　　 DoCmd.CopyObject , "T_学科Backup", acTable, "T_学科"
 End Sub



##１６.Rename メソッド

 【書式】DoCmd.Rename newname[, objecttype, oldname]

 　選択されている オブジェクトの名前を変更します。。引数 objecttype および oldname を指定しないと、objecttype に定数 acDefault (既定値) が使われ、データベースウィンドウで選択されたオブジェクトの名前が変更されます。データシートウィンドウでオブジェクトを選択するには、引数 In Database Window に True を設定した SelectObject メソッドを使うことができます。

 引数 	内容
 newname 	名前を変更するオブジェクトの新しい名前を、文字列式で指定します。
 objecttype 	acDataAccessPage、acDefault (既定値)、acDiagram、acForm、acMacro、acModule
 acQuery、acReport、acServerView、acStoredProcedure、acTable
 oldname 	引数 objecttype で指定した種類のオブジェクトの有効な名前を、文字列式で指定します。

 　次の例は、[名簿]テーブルの名前を[T_名簿]に変更しています。

 DoCmd.Rename "T_名簿", acTable, "名簿"



##１７.DeleteObject メソッド

 【書式】DoCmd.DeleteObject [objecttype][, objectname]

 　指定したオブジェクトを削除します。引数 objecttype および objectname を指定しないと、objecttype には定数 acDefault (既定値) が使われ、データベース ウィンドウで選択されたオブジェクトが削除されます。データベースウィンドウでオブジェクトを選択するには、引数 In Database Window に Yes True)を設定した SelectObject メソッドを使うことができます.。

 引数 	内容
 objecttype 	acDataAccessPage、acDefault (既定値)、acDiagram、acForm、acMacro、acModule
 acQuery、acReport、acServerView、acStoredProcdure、acTable
 objectname 	引数 objecttype で選択した種類のオブジェクトの名前を文字列式で指定します。

 　次の例は、[T_RABEL]テーブルを一度削除して再度作成しています。

 Private Sub コマンド7_Click()
  Dim MYDB As DAO.Database
  Dim TableNew As TableDef
  
  Set MYDB = CurrentDb
  
  'テーブル削除
  On Error Resume Next
    DoCmd.DeleteObject acTable, "T_RABEL"
  On Error GoTo 0
  
  'テーブル作成
  Set TableNew = MYDB.CreateTableDef("T_RABEL")
  With TableNew
     .Fields.Append .CreateField("部屋1", dbText, 4)
     .Fields.Append .CreateField("氏名1", dbText, 50)
     .Fields.Append .CreateField("部屋2", dbText, 4)
     .Fields.Append .CreateField("氏名2", dbText, 50)
     .Fields.Append .CreateField("部屋3", dbText, 4)
     .Fields.Append .CreateField("氏名3", dbText, 50)
    End With
    MYDB.TableDefs.Append TableNew
  
 Exit_コマンド106_Click:
  Exit Sub

 Err_コマンド106_Click:
  MsgBox Err.Description
  Resume Exit_コマンド106_Click

 End Sub



##１８.CancelEvent メソッド

 【書式】DoCmd.CancelEvent

 　イベントをキャンセルします。CancelEvent メソッドは、イベントによって実行されたときにのみ有効です。Visual Basic でキャンセルできるすべてのイベントには、引数 Cancel が指定されています。この引数を CancelEvent イベントの代わりに使って、イベントをキャンセルできます。

 　次の例では、ともにある条件が満たされたとき、フォームは開きません。

 Private Sub ｃｍｄ開く_DblClick(Cancel As Integer)
 　　IF 条件　Then
 　   DoCmd.CancelEvent
  End IF 
    ’通常処理
 　　
 End Sub

 Private Sub ｃｍｄ開く_DblClick(Cancel As Integer)
 　　IF 条件　Then
 　   Cancel = True
  End IF 
    ’通常処理
 　　
 End Sub

 ※FormのCloseイベントは次のような形です。したがって、このイベントはキャンセルできません。

 Private Sub Form_Close()

 End Sub



##１９.Requery メソッド

 【書式】DoCmd.Requery [controlname]

 　アクティブ オブジェクトの指定したコントロールのソースを再クエリし、そのコントロールのデータを更新します。コントロールを指定しない場合は、オブジェクト自体のソースを再クエリします。引数 controlname には、コントロール名だけを指定します。

 引数 	内容
 controlname 	アクティブ オブジェクトのコントロール名を文字列式で指定します。

 　次の例では、[SF_実習施設]サブフォームのレコードソースであるクエリの抽出条件を[cbo区分]コンボボックスの値に設定しているとします。[cbo区分]コンボボックスの値が変わったとき、[SF_実習施設]サブフォームに表示されるレコードも変化します。

 Private Sub cbo区分_AfterUpdate()
   Me.SF_実習施設.Requery
 End Sub



##２０.RunSQL メソッド

 【書式】DoCmd.RunSQL sqlstatement[, usetransaction]

 　アクションクエリを、そのアクションに対応する SQL ステートメントを使用して実行します。

 引数 	内容
 sqlstatement 	アクションクエリのための SQLステートメントを文字列式で指定します。
 usetransaction 	このクエリをトランザクションに含めるには、True を使います。トランザクションを使わない場合は、False を使います。この引数を指定しないと、True(既定値) が使われます。

　次の例は、システム メッセージをオフにして、[T_入力チェック]テーブルの全レコードを削除しています。

 　  DoCmd.SetWarnings False
  DoCmd.RunSQL "DELETE * FROM T_入力チェック"
  DoCmd.SetWarnings True



##２１.SendObject メソッド

 【書式】DoCmd.SendObject [objecttype][, objectname][, outputformat][, to][, cc][, bcc][, subject]
 　　　　　[, messagetext][, editmessage]

 　指定した Access のデータシート、フォーム、レポート、モジュール、データ アクセスページをメール メッセージに添付して転送します。

 引数 	内容
 objecttype 	acSendDataAccessPage、acSendForm、acSendModule、acSendNoObject (既定値)
 acSendQuery、acSendReport、acSendTable
 objectname 	引数 objecttype で選択した種類のオブジェクトの名前を文字列式で指定します。メール メッセージにアクティブ オブジェクトを含める場合は、引数 objecttype でオブジェクトの種類を指定し、この引数は指定しません。引数 objecttype および objectname の両方を指定しない場合は、引数 objecttype に定数 acSendNoObject (既定値) が使われ、データベース オブジェクトを含まずに電子メールのアプリケーションにメッセージが送られます。
 outputformat 	acFormatDAP、acFormatHTML、acFormatRTF、acFormatTXT、acFormatXLS
 この引数を指定しないと、出力形式の入力を促すプロンプトが表示されます。
 to 	メール メッセージの宛先行に表示する受信者の一覧を文字列式で指定します。
 この引数または引数cc および bcc に指定する宛先の名前は、セミコロン (;) で区切ります。宛先名がメール アプリケーションで識別されない場合、メッセージは送信されず、エラーが発生します。
 この引数を指定しないと、宛先の入力を促すプロンプトが表示されます。
 cc 	メール メッセージの Cc 行に表示する受信者の一覧を文字列式で指定します。この引数を指定しないと、メールメッセージの Cc 行は空白です。
 bcc 	メール メッセージの Bcc 行に表示する受信者の一覧を文字列式で指定します。この引数を指定しないと、メールメッセージの Bcc 行は空白です。
 subject 	メール メッセージの件名行に表示するテキストを文字列式で指定します。この引数を指定しないと、メール メッセージの件名行は空白です。
 messagetext 	メール メッセージの本文のオブジェクトの後に含めるテキストを文字列式で指定します。この引数を指定しないと、メール メッセージの本文に含まれるのはオブジェクトのみになります。
 editmessage 	メッセージが読み込まれた直後に電子メールのアプリケーションを開き、メッセージを編集できるようにするには、True を使います。メッセージを編集せずに送信するには、False を使います。この引数を指定しないと、True (既定値) が使われます。

 　次の例はOutlook Express経由でメールを送信するものです。

 　Private Sub コマンド130_Click()
  Dim DB As Database
  Dim RS As Recordset
  Dim 件名 As String
  Dim 本文 As String

  Set DB = CurrentDb
  Set RS = DB.OpenRecordset("採点者名簿")
  
  Do Until RS.EOF
  
  '件名の作成
    件名 = Me.コンボ3 & "(" & RS!教科 & ")" & "採点依頼"
    
   '本文の作成
    本文 = RS!氏名 & " 様" & vbCrLf _
      & Kenmei & vbCrLf & vbCrLf & "  受け渡日： " & RS!受け渡日 & " (時間) " & RS!時間1 _
      & "～" & RS!時間2 & vbCrLf _
      & "  締め切日： " & RS!締め切日 & " (時間) " & RS!時間3 & "まで" & vbCrLf & vbCrLf _
    & "（備考）" & Me.備考 & vbCrLf & vbCrLf _
      & " 可能かどうか下の［］に番号を入力してご返信下さい。" & vbCrLf & vbCrLf _
      & " (担当) 田中  (Tel  092-47*-****)" & vbCrLf _
      & "《送信日時》　" & Date & "　" & Hour(Time) & "時" & Minute(Time) & "分" & vbCrLf _
      & " --------------------------------------------" & vbCrLf _
      & "  返事（１．出来る　　２．出来ない)・・・[]" & vbCrLf _
      & "　備考欄［］"
   
   'メールの送信
   DoCmd.SendObject , , acFormatTXT, RS!PCmailad, "yfukuoka@msc.biglobe.ne.jp", , 件名, _
       本文, Me.チェック133
   RS.MoveNext
    Loop
    RS.Close: Set RS = Nothing 
 End Sub



##２２.TransferText メソッド

 【書式】DoCmd.TransferText [transfertype][, specificationname], tablename, filename
 　　　　　[, hasfieldnames]

 　カレントデータベース とテキストファイルとの間でテキストをインポートまたはエクスポートします。

 引数 	内容
 transfertype 	acExportDelin 	可変長テキストの出力
 acExportFixed 	固定長キストの出力
 acExportHTML 	HTML形式テキストの出力
 acExportMerge 	差込データの出力
 acImportDelim 	可変長テキストのインポート（規定値）
 acImportFixed 	固定長テキストのインポート
 acImportHTML 	HTML形式テキストのインポート
 acLinkDelim 	区切り記号付リンク
 acLinkFixed 	固定長リンク
 acLinkHTML 	HTML形式リンク
 specificationname 	カレントデータベースに格納したインポートまたはエクスポート定義の名前を文字列式で指定します。固定長のテキスト ファイルに対しては、引数を指定するかまたは schema.ini ファイルを使用する必要があります。schema.ini ファイルはインポート、リンク、またはエクスポートされるテキスト ファイルと同じフォルダに格納します。スキーマ ファイルを作成するには、ファイル作成のためのインポート/エクスポート ウィザードを使います。区切り記号付きテキストファイルに対しては、この引数を指定しないで、既定のインポート/エクスポート定義を選択できます。
 tablename 	テキスト データとのインポート、エクスポートを行う Access テーブルの名前、または結果をテキスト ファイルにエクスポートする Access クエリの名前を、文字列式で指定します。
 filename 	インポート、エクスポートを行うテキストファイルの、パスを含めた完全な名前を文字列式で指定します。
 hasfieldnames 	インポート、エクスポート時に、テキスト ファイルの最初の行をフィールド名として使うには、Trueを使います。最初の行をデータとして扱うには、False(既定値) を使います。

 　次の例は、[T_名簿]テーブルをcsv形式で保存しています。

    DoCmd.TransferText acExportDelim, , "T_名簿",  "D:\Backup\Honkasei.csv", True

 　次の例は、csvファイルのデータを、[T_高校コード]テーブルにインポートしています。

    DoCmd.TransferText acImportDelim, , "T_高校コード",  "D:\Backup\koukou.csv", True

 ※csvファイルを利用してデータベースのテーブルのバックアップファイルを作成しておくと、データベースが壊れた場合、これを利用して容易に復旧することができます。また、頻繁にデータベースを変更する場合、レコードの入れ替えも自動的に実行できるようにすることも可能です。詳しくは、こちらのサンプルデータベースを参考にして下さい。




##２３.TransferSpreadsheet メソッド

 【書式】DoCmd.TransferSpreadsheet [transfertype][, spreadsheettype], tablename, 
 　　　　　filename[, hasfieldnames][, range]

 　カレント データベース とワークシート ファイルとの間でデータをインポートまたはエクスポートします。Excel のワークシートのデータを Access のカレント データベースにリンクすることもできます。

 引数 	内容
 transfertype 	acImport (既定値)、acExport、acLink
 spreadsheettype 	0 acSpreadsheetTypeExcel3 (既定値)
 6 acSpreadsheetTypeExcel4
 5 acSpreadsheetTypeExcel5
 5 acSpreadsheetTypeExcel7
 8 acSpreadsheetTypeExcel8
 8 acSpreadsheetTypeExcel9
 tablename 	ワークシートのデータとのインポート、エクスポートを行う Access テーブルの名前、または結果をワークシートにエクスポートする Access 選択クエリの名前を、文字列式で指定します。
 filename 	インポート、エクスポートするワークシートのファイル名およびパスを文字列式で指定します。
 hasfieldnames 	インポート時にワークシートの最初の行をフィールド名として使うには、True を使い、最初の行をデータとして扱うには、False を使います。Falseが 既定値です。Access テーブルまたは選択クエリのデータをワークシートにエクスポートする場合は、常にフィールド名がワークシートの最初の行に挿入されます。
 range 	ワークシートのセルの範囲または範囲の名前を文字列式で指定します。この引数は、インポートのみに適用されます。ワークシート全体をインポートする場合や、ワークシートにエクスポートする場合は、この引数を指定しません。

 　次の例は[Q_担任別名簿]選択クエリの結果セットをエクセル形式で出力しています。

 Private Sub Option2_Click()
  DoCmd.SetWarnings False
  DoCmd.TransferSpreadsheet acExport, 8, "Q_担任別名簿", "D:\ｸﾗｽ別名簿原本.xls", True, ""
  DoCmd.SetWarnings True
 End Sub

 次の例は[要項請求.xls]の特定のセル範囲選択（"作業"）を元にリンクテーブルを作成しています。

   DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, _
           "T_要項請求", "D:\出力\要項請求.xls", True, "作業"

##２４.Quit メソッド (DoCmd オブジェクト)

 【書式】DoCmd.Quit [options]

 　Microsoft Access を終了します。

 引数 	内容
 options 	acQuitPrompt，　acQuitSaveAll (既定値)，　acQuitSaveNone

 　次の例はAccess を終了します。

 Private Sub コマンド162_Click()
    DoCmd.Quit  
 End Sub

 これは、つぎのコードと同じ動作をします。

 Private Sub コマンド34_Click()
  Application.Quit
 End Sub

２５．PrintOut メソッド (DoCmd オブジェクト)

 書式】DoCmd.PrintOut(PrintRange, PageFrom, PageTo, PrintQuality, Copies, CollateCopies)

 引数 	説明
 PrintRange 	省略可能です。使用できる定数はacPages、acPrintAll (既定値)acSelection のいずれかです。
 PageFrom 	

  省略可能です。アクティブ フォーム またはアクティブ データシートの有効なページ番号を、数式で指定します。この引数は、引数 printrange  に acPages を指定した場合は省略できません。
 PageTo  	省略可能です。アクティブ フォームまたはアクティブ データシートの有効なページ番号を、数式で指定します。この引数は、引数 printrange に acPages を指定した場合は省略できません。
 PrintQuality 	

 省略可能です。使用できる定数は、acDraft　、acHigh (既定値)、acLowacMedium のいずれかです。
 Copies 	 省略可能です。数式を指定します。この引数を指定しないと、1 (既定値) が使われます。
 CollateCopies  	

 省略可能です。部単位で印刷するには True (- 1) を使い、部単位で印刷しない場合は False (0) を使います。この引数を指定しないと、True (既定値) が使われます。

  使用例はこちらを参照してください。
http://www.geocities.jp/cbc_vbnet/kisuhen/filter.html
#レコードの抽出（基礎編）
■Contents

 ０１　Filter
 ０２　FilterOn
 ０３　抽出条件の表記方法
 ０４　使用例
 　　・抽出条件と完全に一致するデータのみを表示
 　　・抽出条件以外データのみを表示
 　　・設定値以上/以下のデータのみを表示
 　　・指定範囲内のデータを表示
 　　・算術演算子を使用して抽出条件を設定
 　　・論理演算子を使用して抽出条件を設定
 　　・フィルタをかけてNull値のデータを抽出　
 　　・あいまいな抽出条件を設定（ Like 演算子を使用 )　
 　　・あいまいな抽出条件を設定（ ワイルドカード文字を使用 )
 　　・リストを使用して抽出条件を設定



###０１.Filter

 【書式】Me.Filter="対象フィールド名=抽出条件" (抽出条件:フィルタの抽出条件を設定)

 　フィルタをフォーム、レポート、クエリ、テーブルに適用したときに表示されるレコードのサブセットを示します。Filterプロパティを使用すると、フィルタを保存し、後でそれを適用することができます。設定値は、文字列式で、WHERE 句から WHERE を省いたものです。



###０２.FilterOn

 　フォームまたはレポートのFilter プロパティを適用するかどうかを示します。適用するには、FilterOnプロパティに True (-1) を設定し、フィルタを削除するには、FilterOnプロパティに False (0) を設定します。



###０３.抽出条件の表記方法

 - テキスト型フィールドを使ってレコードを抽出する場合は，抽出する値をシングルクォーテーション（’）で囲みます。
 - 日付型フィールドを使ってレコードを抽出する場合は，抽出する値をシャープ記号（＃）で囲みます。
 - 数値型フィールドを使ってレコードを抽出する場合は，そのまま記述します。
 - 比較演算子/論理演算子/算術演算子を使って抽出条件を記述します。論理演算子を利用してフィルタを設定する場合，1文で記述すると（”）ダブルクォートの設定がわかりづらくなるので，別々に条件を設定して，文字列を連結した方がよいでしょう。



###０４.使用例

抽出条件と完全に一致するデータのみを表示(「 ＝ 」を使用 ） 

 「氏名」フィールドがテキストボックス「Txt氏名」の値と完全に一致するデータを抽出

 　　　　Me.Filter = "氏名 = '" & Txt氏名 & "'"

 抽出条件以外データのみを表示　（「 <> 」を使用 ） 

 「氏名」フィールドがテキストボックス「Txt氏名」の値と異なるデータを抽出

 　　　　Me.Filter = "氏名 <> '" & Txt氏名 & "'"

 設定値以上/以下のデータのみを表示　（「 >= 」「 <=　」を使用 ） 

 「得点」フィールドがテキストボックス「Txt得点」の値以上のデータを抽出

 　　　　Me.Filter = "得点 >= " & Txt得点 

 「得点」フィールドがテキストボックス「Txt得点」の値以下のデータを抽出 

 　　　　Me.Filter = "得点 <= " & Txt得点 

 指定範囲内のデータを表示　（「 Between 　And　」を使用 ） 

 「得点」フィールドが2つのテキストボックス「Txt得点1」と「Txt得点2」の値の間のデータを抽出

  　　　　Me.Filter = "得点 Between " & Txt得点1 & " And " &  Txt得点2

 算術演算子を使用して抽出条件を設定 

 「入荷日」フィールドの値-1がテキストボックス「Txt入荷日」の値より小さいデータを抽出

  　　　　Me.Filter = "入荷日-1 < # " & Txt入荷日 & "#" 

 論理演算子を使用して抽出条件を設定　（　And，Eqv，Imp，Not，Or，Xor　を使用　） 

 「価格」フィールドがテキストボックス「Txt価格」の値より小さく，
 「入荷日」フィールドがテキストボックス「Txt入荷日」の値より小さいデータを抽出

 　　　　Dim strFilter1 As String
   Dim strFilter2 As String
   
 　　　　strFilter1 = "価格 < " & Txt入荷日 
 　　　　strFilter2 = "入荷日 < # " & Txt入荷日 & "#" 
 　　　　Me.Filter =　strFilter1 & " AND " & strFilter2

 フィルタをかけてNull値のデータを抽出　（　IsNuL　を使用　） 

 「価格」フィールドがNull値のデータを抽出

 　　　Me.Filter = "IsNuLL(価格)"

 あいまいな抽出条件を設定（ Like 演算子を使用 ) 

 　フィルタをかけて，対象フィールドのデータの一部に抽出条件が含まれるデータを表示します。データの一部に抽出条件が含まれる場合には，Like演算子とワイルドカード文字　”*”を使用して抽出条件を設定します。ワイルドカード文字　”*”は，任意の文字列に対応します。データの値が「Aを含む」を表すにはLike"*A*"のように記述します。下の例では，Like演算子に続く文字列の設定に，ダブルクォート（”）を２つ続けて記述しています。文字列中でダブルクォートを２つ続けて記述することで，１つのダブルクォートであることを認識します。

 「商品名」フィールドの一部がテキストボックス「Txt商品名」の値を含むデータを抽出

  　　 Me.Filter = "商品名 Like  ""*" & Txt商品名 & "*"""

 あいまいな抽出条件を設定（ ワイルドカード文字を使用 ) 

 　ワイルドカード文字”#”と”?”を使用してフィルタを設定します。ワイルドカード文字”?”は任意の1文字に対応し，ワイルドカード文字”#”は任意の1数字に対応します。

 リストを使用して抽出条件を設定 

 　フィルタをかけて，対象フィールドからリストに該当するデータを抽出します。

 ?リストのいずれかに該当するデータを抽出するには，Like演算子と[角カッコ]を併用し、[　]の中にリストに設定する
 　文字を並べます。ここにはハイフン（-）を使用して範囲指定することも可能です。
 ?エクスクラメーションマーク（！）と組み合わせることで，リストのいずれにも該当しないデータを抽出することもでき
 　ます。

 「商品コード」フィールドの一部がテキストボックス「Txt抽出」の１文字を含むデータを抽出

Me.Filter = "商品コード Like ""*[" & Txt抽出 & "]"""

 「商品コード」フィールドがテキストボックス「Txt抽出」のどの１文字をも含んでいないデータを抽出 
  
Me.Filter = "商品コード Like ""*[!" & Txt抽出 & "]"""

http://www.geocities.jp/cbc_vbnet/kisuhen/sort.html

レコードの並べ替え（基礎編）
■Contents

 ０１　OrderBy
 ０２　OrderByOn

０１.OrderBy

 ?　フォーム、クエリ、レポート、テーブルでのレコードの並べ替え方法を示します。設定値は、並べ替の基準とするフ
 　ィールド名を示す文字列式です。
?　複数のフィールド名を使用する場合は、それぞれの名前をコンマ (,) で区切ります。

?　特に指定しない限り、昇順で並べ替えられますが、指定するときは，文字列式の最後に「ASC」と入力します。
　レコードを降順で並べ替えるには、文字列式の最後に「DESC」と入力します。

　　たとえば、得意先コードで降順に並べ替えるには

　　　　　　　　　　　　　Me.OrderBy = "得意先コード DESC"

　のように設定します。

?　OrderBy プロパティに指定した並べ替え順序を適用するには、OrderByOn プロパティに [Yes] を設定します。
０２.OrderByOn

 　OrderByOn プロパティは、オブジェクトの OrderBy プロパティの設定を適用するかどうかを示します。設定値は次のとおりです。

 設定値 	Visual Basic 	内容
 Yes 	True (-1) 	OrderByプロパティを適用します。
 No 	False (0) 	OrderByプロパティを適用しません。(既定値)

 【使用例】
    Me.OrderBy = "学年　ASC,　かな氏名　ASC"
    Me.OrderByOn = True
http://www.geocities.jp/cbc_vbnet/kisuhen/statement.html
#HOME > VBA 基礎 > このページステートメント（基礎編）
#■Contents
０１　Beepステートメント 	０２　Call ステートメント 	０３　ChDir ステートメント
０４　ChDrive ステートメント 	０５　Const ステートメント 	０６　Dim ステートメント
０７　End ステートメント 	０８　Erase ステートメント 	０９　Exit ステートメント
１０　FileCopy ステートメント 	１1　Function ステートメント 	１２　GoSub...Return ステートメント
１３　GoTo ステートメント 	１４　Kill ステートメント 	１５　Midステートメント
１６　MkDir ステートメント 	１７　Nameステートメント 	１８　Option Base ステートメント
１９　Option Compare ステートメント 	２０　Option Explicit ステートメント 	２１　Private ステートメント
２２　Randomize ステートメント 	２３　ReDimステートメント 	２４　Rem ステートメント
２５　RmDir ステートメント 	２６　SendKeys ステートメント 	２７　Set ステートメント
２８　Sub ステートメン 	２９　With ステートメント 	３０　Type ステートメント
###１９.Option Compare ステートメント

 文字列データの既定の比較方法を設定します。モジュール レベルで使います。

 【書式】Option Compare {Binary | Text | Database}

 [【解説】
 ?　Option Compare ステートメントを使う場合は、モジュールの宣言セクションに記述します。

 ?　モジュール内での文字列の比較方法 (Binary モード、Text モード、または Database モード) を指定するものです。Option Compare ステートメントが記述されていないモジュールでは、既定の文字列比較方法である Binary モードが使われます。

 ?　Binary モードでは、文字列比較の並べ替え順序は、バイナリ文字コードのコード順によって行われます。Visual Basicでは 、文字コードは Unicode で表現されるので、結果は Unicode のコード順によって決まります。Text モードでは、文字列比較は，50 音順で、大文字と小文字、文字幅、カタカナとひらがなを区別しない並べ替え順になります。Database モードの文字列比較の並べ替え順序は、データベースの文字列比較に適用される国別の ID によって決まります。
http://www.geocities.jp/cbc_vbnet/kisuhen/mesodo.html
ＨＯＭＥ >VBA 基礎 > メソッド
##■Contents

 ０１　CompactDatabase メソッド
 ０２　Copyメソッド
###01.CompactDatabase メソッド

 【書式】DBEngine.CompactDatabase olddb,newdb


 　閉じているデータベースのコピーと最適化を行います。

 指定項目 	説明
 olddb 	閉じている既存のデータベース名を示す文字列型 (String) の変数を指定します。"C:\db1.mdb" のようにフル パス名で指定できます。ファイル名に拡張子が付いている場合、拡張子も指定してください。
 newdb 	作成中の最適化したデータベースのファイル名 （およびパス） を示す文字列型 の変数を指定します。

 解説

 　データベースのデータ変更を繰り返すと、そのデータベース ファイルに断片化が発生し、必要以上にディスク領域を使用する可能性があります。定期的に CompactDatabase メソッドを使用してデータベース ファイルを最適化してください。通常、最適化を実行すると、データベースのサイズは小さくなり、速度も向上します。
 データベースを最適化する場合、必ず引数 olddb を閉じる必要があります。マルチユーザー環境では、データベースを最適化している間、ほかのユーザーが引数 olddb を開くことはできません。引数 olddb が開かれている場合や、排他的に使用できない場合には、エラーが発生します。

 【サンプルコード】はこちらを参照してください。