Miten saan sql kyselyyn hakuehdon excel solusta?
Tarve tehdä tietokanta kyselyitä antamalla hakuun minimi vuosiluku?
Tämä vuosiluku ehto on tarkoitus syöttää excel soluun ja hakutulokset tulevat samaan exceliin.
Nyt ehto pitää aina mennä laittamaan hakuun sql kyselyn sisälle.
Onko SQL kysely työkirjan tietolähteessä vai VBA koodissa?
Työkirjan tietolähteessä; ODBC-kysely.
VBA:lla onnistuu helposti.
Oletetaan että tietolähteen nimi on Query1 ja solussa A1 on vuosiluku
Tietolähteen kysely löytyy objetista ActiveWorkbook.Queries.Item("Query1").Formula
Muokkaat Formulaa siten että korvaat vuosiluvun solun A1 arvolla, Soluun voit viitata koodissa esim. Range("A1").Value.
Kun kysely on muokattu tietolähteen päivitys onnistuu komennolla : ActiveSheet.ListObjects("Query1").QueryTable.
Sub Button1_Click() ActiveWorkbook.Queries.Item("Query1").Formula = " let " & _ "Source = Sql.Database(""sql2021"", ""mydb"", [Query=""select * from table where year(createdate) = " & Range("A1").Value & """, CreateNavigationProperties=false]) " & _ "in " & _ " Source " ActiveSheet.ListObjects("Query1").QueryTable.Refresh BackgroundQuery:=False End Sub
Koodin ajon voit triggeröidä vaikka napin taakse kuten esimerkissä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.