我真的不知道如何字这个问题,所以我提供的步骤。控制SQL查询的值输入到Excel单元格
步骤:(VBA-Excel)中
- 数据被插入到数据库中。一个查询运行将所有违规的公司拖拽到excel中。
- 然后我有一个循环拍摄每一个公司名称的值,然后插入单元格的值(公司名称)为检索电子邮件另一个查询。
我的问题是,一些企业已经列出了两个电子邮件。因此,DB查询看起来是这样的:
- 公司/电子邮件
- 微软/ EMAIL1 @ ...
- 微软/ EMAIL2 @ ...
- 索尼/电子邮件@ ...
当电子邮件查询使用跑(希望它能帮助)
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中,这种过度写一封电子邮件是因为它会自动输入下一行中检查下一个公司的值(由该公司的电子邮件取代)。我希望得到的数据,因此它会像:
- 公司/电子邮件/电子邮件2
- 微软/ EMAIL1 @ .../EMAIL2 @ ...
- 索尼/电子邮件@ ..
我知道这有点长(我很抱歉),这可能吗?或者,我是否应该编辑数据库中的电子邮件列表以允许每家公司拥有多个电子邮件字段?
我会改变SQL语句给你在一行中两个电子邮件。使用嵌套select语句,您可以返回第二封电子邮件,如果不存在,则返回空值。在问之前;要做到这一点,它需要知道你的数据库平台和其他信息。这将是一个新问题。 –
这就是我所做的,它的成果非常好! – JustoShow