DataGrid nach neuer Abfrage aktualisieren

  • VB6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von martinB.

    DataGrid nach neuer Abfrage aktualisieren

    Hallo ihr Lieben,

    ich habe mal wieder ein Problem:

    Ich habe ein DataGrid, welches mit einer SQL-Abfrage gefüllt wurde. Die Tabelle zeigt eine Reihe von Daten mit enthaltenem Daum über mehrere Jahre. Nun soll der Anwender aus einem Listenfeld eines der verfügbaren Jahre auswählen können, so daß im DataGrid nur entsprechende Datensätze angezeigt werden.

    Der Quellcode für die Auswahl des gewünschten Jahres lautet:

    Private Sub List1_Click()
    Dim varSelJahr As String
    'selectierten Zeitraum-Option einlesen
    varSelJahr = List1.Text
    Autokosten.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & gDateiPfad & ";Persist Security Info=False"
    SQLString = "SELECT Name AS Fahrzeug, Datum, Empfänger, km, Liter, Einzelpreis,_
    Gesamtpreis, Memo, Kostenart, Jahr FROM Buchen WHERE (Name = '" & gFahrzeugName & "')_
    AND (Jahr = '" & varSelJahr & "') ORDER BY Datum"
    Autokosten.RecordSource = SQLString
    Set DataGrid1.DataSource = Autokosten
    DataGrid1.Refresh
    End Sub

    Die Variablen gDateiPfad und gFahrzeugName wurden in der SubMain global deklariert. Bei Autokosten handelt es sich um ein ADO-Datensteuerelement. Der SQL-String als solches funktioniert. Trotzdem bekomme ich mit desem Code das DataGrid jedoch nicht überredet, die neue Auswahl an Datensätzen anzuzeigen. Es beharrt leider auf der SQL-Abfrage, die beim Laden der Form ausgeführt wurde, so daß sich an der Anzeige überhaupt nichts ändert.

    Habe ich da einen grundsätzlichen Denkfehler, wenn ich mit der Methode DataGrid1.Refresh das DataGrid mit der neu zugeordneten Abfrage aktualisieren möchte?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „martinB“ ()

    Hallo Alchimist,

    ja, das hat geholfen. Allerherzlichsten Dank ... jetzt ist mir wohler :) . Hatte mir nämlich damit beholfen, die Form zu schließen und mit der neuen Abfrage wieder zu öffnen. Das funktionierte auch, war aber höchst unelegant X(