SQL-Abfrage auf Recordset anwenden

  • VB6

    SQL-Abfrage auf Recordset anwenden

    Hey,
    wie kann ich eine SQL-Abfrage in einem bereits bestehenden Recordset ausführen, also keine Abfrage mit Unterabfrage, sondern zwei getrennte Abfragen.
    Zur Verdeutlichug habe ich mal den folgenden Code eingestellt:

    Visual Basic-Quellcode

    1. ' Verweis auf "Microsoft DAO 3.6 ObjectLibrary" liegt vor
    2. Public WS As Workspace ' Arbeitsumgebung
    3. Public DB As Database ' Datenbank
    4. Public RS As Recordset ' Recorsset
    5. Private Sub Form_Load()
    6. Set WS = DBEngine.Workspaces(0)
    7. Set DB = WS.OpenDatabase(App.Path & "\DBName.mdb", False, False)
    8. End Sub
    9. ' ----- Beim ersten Click Abfrage in DB, beim zweiten (sollte) die Abfrage im Recordset ausgeführt werden
    10. Private Sub cmd_Click()
    11. Static iCt%
    12. iCt = iCt + 1
    13. Select Case iCt
    14. Case 1 ' --- Funktioniert
    15. Call Execute("SELECT * FROM TabellenName WHERE TaxID < 10")
    16. Case 2 ' --- Funktioniert NICHT
    17. Call Execute("SELECT * FROM 'RS' WHERE TaxID > 6", False) ' <---------- ???
    18. End Select
    19. End Sub
    20. Private Function Execute(sQuery As String, Optional bFromDB As Boolean = True)
    21. If bFromDB Then ' --- Funktioniert
    22. Set RS = DB.OpenRecordset(sQuery, dbOpenSnapshot)
    23. Else ' --- Funktioniert NICHT
    24. Set RS = RS.OpenRecordset(sQuery, dbOpenSnapshot) ' <---------- ??? --- Konvertierungsfehler
    25. End If
    26. ' ----- Gefundene Abfrage ausgeben
    27. Liste.Clear
    28. If Not (RS.BOF And RS.EOF) Then
    29. RS.MoveFirst
    30. Do Until RS.EOF
    31. Liste.AddItem RS.Fields("TaxName")
    32. RS.MoveNext
    33. Loop
    34. End If
    35. Liste.Refresh
    36. Execute = RS.RecordCount
    37. End Function


    Ersetzt man in Zeile 27 RS.Op.. durch DB.Op.., dann entsteht ein Syntaxfehler in der Abfrage bzw. die Abfrage ist unvollständig.
    Weiter: Wird RS in Zeile 19 nicht in Hochkommata gesetzt, erkennt die Engine diesen Ausdruck natürlich nicht als Tabelle oder Abfrage. Usw...
    Mir ist klar, dass Zeile 19 und 27 so nicht funktionieren können, aber wie geht´s richtig ?(

    Also, es wäre nett, wenn mir einer helfen könnte!

    PS: Leider habe ich dieses Thema aus Versehen nicht ins Forum Datenbankprogrammierung gestellt, vielleicht kann ein Administrator es ja dorthin verschieben?!
    mfG DHB

    Ich meine:
    :P Es sollten nur ernstzunehmende Beiträge eingestellt werden!
    :( Beiträge, die nur deren Anzahl in die Höhe treiben sollen, stehlen Lesern deren Zeit und schenken nur Frust.
    ;) Wenn ein Autor sein Thema für erledigt hält, sollte er dies kurz als letzten Eintrag vermerken.
    8) Leser wüssten dann, dass hier weitere Beiträge nicht mehr sinnvoll sind.

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