Access-Datenabfrage mir mehreren Bedingungen (SELECT WHERE.....)

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Access-Datenabfrage mir mehreren Bedingungen (SELECT WHERE.....)

    Hallo VB-Paradise-Gemeinde!

    hab mal wieder ein bisschen Zeit und auch schon direkt das nächste Problem.....
    Ich lese mit folgendem Code Daten aus einer Tabelle und lasse mir die Werte in einem Chart darstellen:

    VB.NET-Quellcode

    1. Option Explicit On
    2. Option Strict On
    3. Imports System.Data.OleDb
    4. Imports System.Windows.Forms.DataVisualization.Charting
    5. Public Class Form1
    6. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    7. Dim strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ij\Desktop\Housekeeper.accdb"
    8. Dim tblFields As String = "SELECT * from Test_Table where VarID = " & ComboBox1.Text & ""
    9. Dim conn As New OleDbConnection(strConn)
    10. Dim oCmd As New OleDbCommand(tblFields, conn)
    11. Dim oData As New OleDbDataAdapter(tblFields, conn)
    12. Dim ds As New DataSet
    13. Try
    14. conn.Open()
    15. oData.Fill(ds, "Test_Table")
    16. conn.Close()
    17. Chart1.DataSource = ds.Tables("Test_Table")
    18. Dim Series1 As Series = Chart1.Series("Series1")
    19. Series1.Name = "Values"
    20. Chart1.Series(Series1.Name).XValueMember = "Timestamp"
    21. Chart1.Series(Series1.Name).YValueMembers = "Var-value"
    22. Catch ex As Exception
    23. conn.Close()
    24. End Try
    25. End Sub
    26. End Class




    Nun möchte ich der SELECT-Abfrage eine weitere Bedingung hinzufügen, aber irgendwie will es nicht funktionieren. Wie müsste ich die Abfrage anpassen, dass ich nicht nur nach "VarID=ComboBox1" sonder zusätzlich noch nach einem Zeitraum "Timestamp= " (bestimmter Tag, Stunde, Woche, etc.) filtern möchte?

    Danke schonmal!!!!
    Hi @VB1963!

    Das Feld, in dem das Datum/Uhrzeit gespeichert wird heißt in meiner Tabelle "Timestamp" und hat das Format 20.11.2014 19:38:01.
    Also müsste ich Deine Erweiterung so anpassen:

    VB.NET-Quellcode

    1. "SELECT * from Test_Table where VarID = " & ComboBox1.Text & " And (Timestamp>= VonDate And Timestamp<= BisDate)" "


    Richtig?
    Schaue dir als erstes die DateTimePicker-Klasse einmal genau an...
    Hier wirst du folgende Eigenschaften .Value, .MaximumDateTime und .MinimumDateTime für dein Vorhaben brauchen.
    Ebenso die DatenBankParameter-Klasse einmal genau durchgehen - da ist sogar ein Beispiel, wie die Parameter übergeben und verwendet werden...
    Hi Leute!
    ich hab es hinbekommen!
    für eure Hilfe nochmals vielen vielen Dank!

    ich hätte allerdings noch eine Frage: und zwar habe ich irgendwo mal eine Übersicht gesehen, wo Abfrageparameter aufgelistet sind, die insbesondere Datums- und Zeitabfragen berücksichtigen.
    also zum Beispiel: "zeige mir nur Daten der letzten sieben Tage", "zeige mir nur Werte des aktuellen Monats", usw.!
    Das habe ich nämlich leider noch nicht hinbekommen!

    LG
    ingo
    ich würde denken, dazu braucht man keine Übersicht, sondern muss mit der DateTime-Struktur vertraut sein.
    Dass man den aktuellen Monat abrufen kann, den letzten Monat, Kalenderwoche etc.

    guck dir die DateTime-Struktur im ObjectBrowser an, die kann eine ganze Menge.
    ObjectBrowser? VisualStudio richtig nutzen (Google ist nicht deine Mami)