Я надеюсь, что кто-то может дать мне какое-то руководство, используя методы ADODB для достижения моей цели.
Краткое объяснение:
В настоящее время У меня есть код в Outlook VBA, который выполняет поиск по электронной почте.Если электронное письмо соответствует критериям, макрос Outlook открывает книгу Excel, просматривает столбец A, чтобы узнать, существует ли идентификационный номер.Если он это делает, он обновляет другие столбцы (1 или более столбцов), если нет, он создает новую строку и записывает данные в столбцы AC для этой строки.Затем сохраняет и закрывает книгу.
Я хочу, чтобы ускорил процесс, а ограничивающим фактором является открытие книги Excel (расположенной на общем диске).Я использовал простой макрос ADODB для чтения данных в другой книге и видел возможное увеличение скорости.Я хочу реализовать это здесь.
Мне удалось установить соединение с книгой из Outlook и поместить данные в набор записей.НО я не знаю, как «циклически проходить» по первому столбцу, чтобы увидеть, существует ли идентификатор, или нет, и еще больше, как записать данные в столбцы в рабочей книге (команда UPDATE SQL?).
Код ExcelConnection:
Public Sub ExcelConnect(msg As Outlook.MailItem, LType As String)
Dim lngrow As Long
Dim SourceFile As Variant 'used
Dim SourceSheet As String 'used
Dim SourceRange As String 'used
SourceFile = "T:\Capstone Proj\TimeStampsOnlyTest.xlsx"
SourceSheet = "Timestamps"
SourceRange = "A2:F500"
Dim rsCon As Object 'used
Dim rsData As Object 'used
Dim szConnect As String ' used
Dim szSQL As String ' used
Dim lCount As Long
If Val(Application.Version) < 12 Then
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & SourceFile & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes"";"
Else
szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & SourceFile & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes"";"
End If
szSQL = "SELECT * FROM [" & SourceSheet$ & "$" & SourceRange$ & "];"
Set rsCon = CreateObject("ADODB.Connection")
Set rsData = CreateObject("ADODB.Recordset")
rsCon.Open szConnect
rsData.Open szSQL, rsCon, 0, 1, 1
'***Need Help implementing a way to find exisiting ID numbers, or if Exisiting = 0 then INSERT new row into worksheet***'
Select Case LType '// Choose which columns based on Type
Case "MDIQE"
' If columnvalue = 0 Then
' Update column value
Case "MDIQ"
' If columnvalue = 0 Then
' Update column value
'
'........
'
Case "MDIF"
' If columnvalue = 0 Then
' Update column value
'
End Select
'Error handing & success messagebox
End sub
Спасибо за помощь, Вагнер