У меня есть лист Excel, который содержит код VBA, назначенный кнопке.
Вот часть моего кода VBA:
Dim ConnectionStr As String
Dim sql As String
ConnectionStr = "Provider=SQLOLEDB.1;Password=ABCDEFG;User ID=xyz;Data Source=MyServer;Initial Catalog=NEW_DB"
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array("OLEDB;" & ConnectionStr), _
Destination:=Worksheets("Hidden").Range("$A$2")).QueryTable
.CommandType = xlCmdSql
.CommandText = "EXECUTE [dbo].[usp_one]"
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.ListObject.DisplayName = "Table_in_Hidden"
.Refresh BackgroundQuery:=False
End With
Я нехотите показать строку подключения в макросе VBA, потому что кто-то может «заглянуть» в нее и обнаружить наш пароль SQL Server.
Кажется, что одним из решений будет создание файла конфигурации, содержащего информацию о соединении, а затемссылка на файл конфигурации в макросе VBA.