31/07/2023 - oregon ha scritto:
riteri devi lavorare con la WHERE della SELECT
Per aggiornare la UPDATE e per inserire la INSERT
Ma tu, prima di utilizzare SQL Server, quanto sai del linguaggio SQL?
ActiveWorkbook.Queries.Add Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Origine = Sql.Database(""XXXX"", ""XXXX"", [Query=""select * from TABELLA wherE XXXXX like '%%'"", CommandTimeout=#duration(0, 0, 1, 0), MultiSubnetFailover=true])" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " Origine"
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Query1;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Query1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabella_Query1"
.Refresh BackgroundQuery:=False
End With
Tramite il registratore, sono riuscito ad identificare dove inserire la query.. Ora però se volessi attivare la macro tramite un tasto mi dice che la query già esiste (query 1).. soluzioni?
- vedere se la query già esiste e scriverne una nuova
- cancellarla ad ogni fine macro?
- altra soluzione?
Grazie mille