У меня есть таблица SQL, называемая Аудит. В этой таблице есть два поля: UN и CN. Имя моего сервера является аналитическим, а DB - DW_ALL. Я пытаюсь захватить в excel имя пользователя и имя компьютера, которое обращается/открывает мою книгу или лист, а затем записывает эту информацию аудита в мою таблицу SQL.Как написать таблицу SQL с помощью excel VBA
Sub UpdateTable()
Dim cnn As ADODB.Connection
Dim uSQL As String
Dim strText As String
Dim strDate As Date
strText = ActiveSheet.Range("b4").Value
''strDate = Format(ActiveSheet.Range("c4").Value, "dd/mm/yyyy")''
Set cnn = New Connection
cnnstr = "Provider=SQLOLEDB; " & _
"Data Source=icl-analive; " & _
"Initial Catalog=DW_ALL;" & _
"User ID=ccataldo;" & _
"Trusted_Connection=Yes;"
cnn.Open cnnstr
''uSQL = "INSERT INTO tbl_ExcelUpdate (CellText,CellDate) VALUES ('" & strText & "', " & strDate & ")"''
''uSQL = "INSERT INTO Audit (UN,CN) VALUES (MsgBox Environ("username"), MsgBox Environ("username""''
uSQL = INSERT INTO Audit (UN,CN) VALUES ('MsgBox Environ("username") ', 'MsgBox Environ("username"'))
Debug.Print uSQL
cnn.Execute uSQL
cnn.Close
Set cnn = Nothing
Exit Sub
End Sub
Повторное чтение вашего сообщения; Я уже не уверен, что правильно понял вашу проблему. Можете ли вы опубликовать код ошибки и сообщить нам, какая строка несет ответственность. –
Какая ошибка? Вам не понадобится жестко кодировать пользователя/пароль, если книга будет доступна другим пользователям? Если да, не забудьте заблокировать макросы, чтобы они не читались - но это не невозможно! https://stackoverflow.com/questions/272503/how-do-imove-the-password-from-a-vba-project – JiggsJedi
Кроме того, ваш лучший выбор - создать учетную запись sql для использования и дать ее НЕТ разрешений, кроме выполнения в хранимой процедуре, которая делает для вас вставку. – JiggsJedi