Kategorie szkoleń | Egzaminy | Kontakt
  • 0
  • 0
  • 1

Chciałabym modyfikować zapytanie SQL za pomocą listy rozwijanej (w przykładzie w komórce A2) np. wybór roku wybrany w liście rozwijanej wywołuje odpowiednie zapytanie.

Utworzyłam połączenie o uproszczonej nazwie "test" do bazy SQL wg zapytania: 

SELECT rokId, katalog from nazwa_bazy.FK.FROK where katalog = 2015

Dane wyświetliły się prawidłowo.

Następnie utworzyłam VBA:

Private Sub Worksheet_Test(ByVal Target As Range)

If Target.Address = "$A$2" Then

ActiveWorkbook.Connections("test").OLEDBConnection.CommandText = _
"SELECT FROK.rokId, FROK.katalog FROM nazwa_bazy.FK.FROK WHERE FROK.katalog = " & Range("A2").Value


ActiveWorkbook.Connections("test").Refresh

End If

End Sub

 

VBA nie wskazuje błędu, ale debugger nie reaguje. Zmiana roku w liście rozwijanej zamieszczonej w komórce A2 nie wpływa na zmianę wyniku zapytania- cały czas wskazuje kategorię 2015 jak pierwotnie było to założone w połączeniu.

Jakieś wskazówki?

Maria_Karczewska
  • Zapytał
  • @ Maria_Karczewska | 30.03.2020
    • 0
    • 0
    • 0
Komentarze (1)
W jaki sposób wywołujesz swoje makro? Jesteś pewna, że się ono wykonuje i że warunek w "ifie" jest spełniony? Wyłączasz gdzieś w kodzie obsługę błędów? Trochę bez sensu jest przekazywanie do procedury odwołania do zakresu, żeby sprawdzić jedynie, czy adres się zgadza, a i składnia po "FROM" wygląda nieco dziwnie - problem zapewne leży poza zaprezentowanym fragmentem, zatem tradycyjna wskazówka ode mnie: załącz plik :)
Skomentował : @ Mirosław_Janiak ,30.03.2020
  • 1
  • 7
  • 1