Я не был уверен, как сформулировать этот вопрос, поэтому я представил шаги.Управление значениями запросов SQL-запроса к ячейкам Excel
шаги: (VBA-Excel)
- данных Вставляется в базу данных. Запрос выполняется, чтобы вытащить все компании, у которых есть нарушения, и вставляет их в excel.
- У меня тогда есть цикл, который принимает значение каждого названия компании и вставляет значение ячейки (название компании) в другой запрос, который извлекает электронные письма.
Проблема заключается в том, что в некоторых компаниях есть два электронных адреса. Таким образом, запрос дб выглядит следующим образом:
- Компания/Email
- Microsoft/EMAIL1 @ ...
- Microsoft/email2 @ ...
- Sony/электронная почта @ ...
Когда запрос по электронной почте побежал используя (надеюсь, что это помогает)
n = 1
Do While IsEmpty(Range("A" & n).Value) <> True 'If Cells in Col A is not empty
CSCust = Range("A" & n).Value
qryEmail = "SELECT Email FROM dbo.tblPHEmails WHERE SamplePoint LIKE '" & CSCust & "'"
Set connect = New ADODB.Connection
connect.Open (strConnectStr)
'
'Clean Stream Query
Set recordSetCSEmail = New ADODB.recordSet
recordSetCSEmail.Open qryEmail, connect
Range("C" & n).CopyFromRecordset recordSetCSEmail
n = n + 1
Loop
В Excel это снова пишет одно электронное письмо, потому что оно автоматически вводит значения в следующую строку, где проверяется следующая компания (заменяется электронной почтой этой компании). Я хотел бы получить данные так, где это будет, как:
- Company/Email/EMAIL2
- Microsoft/EMAIL1 @ .../email2 @ ...
- Sony/электронная почта @ .. .
Я знаю, что это немного долго (я прошу прощения), возможно ли это? Или я должен пойти и отредактировать список электронной почты в БД, чтобы каждая компания могла иметь более одного поля электронной почты?
Я бы изменил заявление sql, чтобы дать вам оба письма в одной строке. С помощью вложенного оператора select вы можете вернуть второе письмо или нулевое значение, если оно не существует. И прежде чем спросить; для этого потребуется знание вашей платформы БД и другой информации. Тогда это будет новый вопрос. –
Это именно то, что я сделал, и все получилось отлично! – JustoShow