小编Cac*_*ake的帖子

在VBA中设置ODBC连接字符串

我创建了一个宏,它将新的CommandText发送到Excel电子表格中的ODBC连接,然后刷新与查询关联的结果表.这一直很好,但我注意到每次运行宏时它会覆盖一些默认值的连接字符串,这些默认值在我的机器上运行但不能在其他用户的机器上运行,因为它们没有保存的连接文件我有.指定服务器地址的更具体的连接字符串在手动输入时有效,但在运行宏时会被覆盖.

我想我会在发送新的CommandText的同时让宏写入连接字符串,但是我遇到了错误.

我的代码如下:

Sub NewData()

Dim lStr As String
lStr = ""
lStr = lStr & " USE myDBname; "
lStr = lStr & " WITH X AS ("
lStr = lStr & " SELECT"
lStr = lStr & " column1, column2, column3, etc"
lStr = lStr & " FROM"
lStr = lStr & " etc. etc. etc."

With ActiveWorkbook.Connections("PayoffQuery").ODBCConnection

.CommandText = lStr
.Connection = "SERVER=myserveraddress;UID=SYSTEM;Trusted_Connection=Yes;APP=2007 Microsoft Office system;WSID=SYSTEM;DATABASE=myDBname;"

End With

End Sub
Run Code Online (Sandbox Code Playgroud)

.CommandText仍然可以正常更新,但.Connection会引发运行时错误1004:应用程序定义或对象定义的错误.

知道我在这里做错了吗?TIA.

excel odbc vba connection-string

5
推荐指数
1
解决办法
3万
查看次数

VBA使用OFT模板从Excel发送电子邮件-禁止自动签名

我创建了一个宏,该宏打开了一个Outlook电子邮件模板,供用户发送(从电子表格中提取了一些其他信息)。除了Outlook根据用户设置自动添加签名之外,其他所有操作都进行得很好。尽管我可以很容易地关闭自己的签名,但我并不是唯一可能运行此宏的人。

电子邮件模板中已经包含公司签名,因此也不想添加个人签名。

Google提供了很多有关将签名传递到VBA生成的电子邮件的建议,但是我找不到任何可以将其删除的签名。有任何想法吗?

现有代码:

... snip ...

Set otlApp = CreateObject("Outlook.Application")
Set otlNewMail = otlApp.CreateItemFromTemplate("\\Path\To\MyFile.oft")

With otlNewMail
.Bcc = vEmailsFromSpreadsheet '(set earlier on)
.Display
End With

'otlApp.Quit
Set otlNewMail = Nothing
Set otlApp = Nothing
Set otlAttach = Nothing
Set otlMess = Nothing
Set otlNSpace = Nothing
Run Code Online (Sandbox Code Playgroud)

excel vba outlook-vba

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

excel ×2

vba ×2

connection-string ×1

odbc ×1

outlook-vba ×1