Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7123 / 9994 ←次へ | 前へ→

【6068】Re:任意のレコードのみを抽出
回答  小僧  - 05/8/26(金) 15:00 -

引用なし
パスワード
   ▼たんけん さん:
こんにちは。

In句 を使ったパラメータクエリがうまくいかなかったので、
B) の方法をとっています。

Private Sub エクセル抽出_Click()
'要参照設定 Microsoft DAO x.x Object Library
Dim ctl As Control
Dim varItem As Variant
Dim strWhere As String
Dim MyFile As String
Dim SQLCode As String
Dim QD As DAO.QueryDef

  Set ctl = Me!lst_Select
  If ctl.ItemsSelected.Count = 0 Then
    If MsgBox("社員が選択されていません。全員抽出しますか?", _
               vbQuestion + vbYesNo) = vbNo Then
      Me!lst_Select.SetFocus
      Exit Sub
      strWhere = ""
    End If
  Else
    
    For Each varItem In ctl.ItemsSelected
      If strWhere = "" Then
        strWhere = "'" & ctl.ItemData(varItem) & "'"
      Else
        strWhere = strWhere & ",'" & ctl.ItemData(varItem) & "'"
      End If
    Next
        strWhere = "WHERE [社員コード] In (" & strWhere & ")"
  End If
      SQLCode = "SELECT * FROM Q_社員情報抽出 " _
          & strWhere
        
  If DCount("*", "MsysObjects", "Name = 'Q_抽出用'") > 0 Then
    DoCmd.DeleteObject acQuery, "Q_抽出用"
  End If
  
  Set QD = CurrentDb.CreateQueryDef("Q_抽出用", SQLCode)
    QD.Close
  Set QD = Nothing
  MyFile = "c:\社員情報.xls"

  DoCmd.TransferSpreadsheet acExport, _
            acSpreadsheetTypeExcel9, "Q_抽出用", MyFile, True
End Sub


こんな感じでエクセルに抽出されると思います。

>※この掲示板を見て、ほとんどコピペをしていたので、
> あまり意味がわかっておりません。

コードの意味が解らない所がありましたら遠慮せずに
質問なさって下さいね。
426 hits

【6039】任意のレコードのみを抽出 たんけん 05/8/26(金) 11:26 質問
【6054】Re:任意のレコードのみを抽出 たんけん 05/8/26(金) 13:38 発言
【6058】Re:任意のレコードのみを抽出 小僧 05/8/26(金) 13:54 発言
【6060】Re:任意のレコードのみを抽出 たんけん 05/8/26(金) 14:02 発言
【6068】Re:任意のレコードのみを抽出 小僧 05/8/26(金) 15:00 回答
【6069】Re:任意のレコードのみを抽出 たんけん 05/8/26(金) 15:16 お礼
【6074】Re:任意のレコードのみを抽出 小僧 05/8/26(金) 16:00 発言
【6075】Re:任意のレコードのみを抽出 たんけん 05/8/26(金) 16:03 お礼

7123 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078263
(SS)C-BOARD v3.8 is Free