Импорт данных из Access в Excel еженедельно с помощью ADO - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь автоматизировать извлечение данных из Access в Excel с помощью ADO. Каждую неделю я работаю с предыдущими неделями с понедельника по пятницу. Прямо сейчас у меня есть SQL, извлекающий предложения из предыдущей недели, однако, как я понимаю, мне пришлось бы вручную менять даты в коде каждую неделю. Есть ли способ сделать это автоматически?

Ниже приведен код, который у меня есть:

Sub Import()
  'Declaring the necessary variables
  Dim cn As ADODB.Connection
  Dim rs As ADODB.Recordset
  Dim dbPath As String
  Dim SQL As String
  Dim i As Integer
  Dim var As Range

  cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
  "Data Source=xxx"

  'create the SQL statement to retrieve the data from the table
  sSQL = "SELECT * FROM BP_Closed_Deals WHERE Start_Date between '10/21/2019' and '10/25/2019'"

  'create the ADODB recordset object
  Set rs = New ADODB.Recordset

  'connectionString open
  rs.Open sSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText

  If Not rsData.EOF Then
      Sheets("Deals_2018_Copy").Range("A2").CopyFromRecordset rsData
      rsData.Close

       Else
       rsData.Close
       MsgBox "Error: No records returned", vbCritical
   End If

   Set rsData = Nothing


  End Sub

1 Ответ

0 голосов
/ 29 октября 2019

Попробуйте найти дату последнего понедельника и пятницы относительно сегодняшнего дня, используя DatePart:

 sSQL = "SELECT * FROM BP_Closed_Deals "_
         & "WHERE Start_Date BETWEEN Date() - (DatePart('d', Date()) - 2) - 7" _
         & "                     AND Date() - (DatePart('d', Date()) - 2) - 3"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...