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:
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?!
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
- ' Verweis auf "Microsoft DAO 3.6 ObjectLibrary" liegt vor
- Public WS As Workspace ' Arbeitsumgebung
- Public DB As Database ' Datenbank
- Public RS As Recordset ' Recorsset
- Private Sub Form_Load()
- Set WS = DBEngine.Workspaces(0)
- Set DB = WS.OpenDatabase(App.Path & "\DBName.mdb", False, False)
- End Sub
- ' ----- Beim ersten Click Abfrage in DB, beim zweiten (sollte) die Abfrage im Recordset ausgeführt werden
- Private Sub cmd_Click()
- Static iCt%
- iCt = iCt + 1
- Select Case iCt
- Case 1 ' --- Funktioniert
- Call Execute("SELECT * FROM TabellenName WHERE TaxID < 10")
- Case 2 ' --- Funktioniert NICHT
- Call Execute("SELECT * FROM 'RS' WHERE TaxID > 6", False) ' <---------- ???
- End Select
- End Sub
- Private Function Execute(sQuery As String, Optional bFromDB As Boolean = True)
- If bFromDB Then ' --- Funktioniert
- Set RS = DB.OpenRecordset(sQuery, dbOpenSnapshot)
- Else ' --- Funktioniert NICHT
- Set RS = RS.OpenRecordset(sQuery, dbOpenSnapshot) ' <---------- ??? --- Konvertierungsfehler
- End If
- ' ----- Gefundene Abfrage ausgeben
- Liste.Clear
- If Not (RS.BOF And RS.EOF) Then
- RS.MoveFirst
- Do Until RS.EOF
- Liste.AddItem RS.Fields("TaxName")
- RS.MoveNext
- Loop
- End If
- Liste.Refresh
- Execute = RS.RecordCount
- 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:
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.
Ich meine:
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“ ()