25. April 200718 j hallo leute! ich hab ein problem und ich komme auch mit googlen und stöbern ums verrecken nicht weiter.... könnt ihr mir vielleicht sagen, was da nicht stimmen kann?? code: Private Sub PreLaden_Click() Dim qry_1 As String txtGAANr.RowSource = "SELECT M_GA_Nr, M_Standort FROM T_GAASortTemp ORDER BY M_GA_Nr" qry_1 = "SELECT SBNr FROM tmp_Preset WHERE PreName = '" & Me.presetAusw & "'" CurrentDb.Execute (qry_1) txtGAANr = qry_1 End Sub Der name der tabelle und die enthaltenen Felder stimmen natürlich! der fehler kommt beim CurrentDb.Execute (qry_1) --- > "Eine Auswahlabfrage kann nicht ausgeführt werden" ich wäre euch seeeehr dankbar!! greetz
25. April 200718 j hallo leute! qry_1 = "SELECT SBNr FROM tmp_Preset WHERE PreName = '" & Me.presetAusw & "'" CurrentDb.Execute (qry_1) txtGAANr = qry_1 der fehler kommt beim CurrentDb.Execute (qry_1) --- > "Eine Auswahlabfrage kann nicht ausgeführt werden" Wie die Fehlermeldung schon sagt: mit .execute werden Aktionsabfragen ausgeführt, also z.B. Insert, Update oder Delete. Was willst du denn eigentlich machen? Reinhold BTW: Me.presetAusw ist mindestens unsauber, siehe auch FAQ 6.3
25. April 200718 j achso...ähmm... und mit welcher methode führe ich dann den SELECT aus?? ich möchte das, was ich durch diesen Select rausbekomme, in einem Textfeld anzeigen lassen....
25. April 200718 j achso...ähmm... und mit welcher methode führe ich dann den SELECT aus?? ich möchte das, was ich durch diesen Select rausbekomme, in einem Textfeld anzeigen lassen.... In etwa (ungetestet) so: dim rs as DAO.database set rs = CurrentDb.OpenRecordset (qry_1, dbOpenSnapshot) txtGAANr = rs!SBNr .... rs.close set rs = Nothing Reinhold
25. April 200718 j dim rs as DAO.database set rs = CurrentDb.OpenRecordset wobei hier rs vom typ database deklariert wird, was eigentlich unsinn ist, auch wenn es rein syntaktisch nicht fehlerhaft ist, in der folgenden zeile allerdings einen fehler produzieren wird, da der typ database keine recordset-daten verarbeiten kann. üblicherweise verwendet man rs als DAO.recordset oder ADODB.recordset, und db as DAO.database oder ADODB.database. db wird dann (zumindest bei DAO) die CurrentDb übergeben. s'Amstel
26. April 200718 j wobei hier rs vom typ database deklariert wird, was eigentlich unsinn ist, auch wenn es rein syntaktisch nicht fehlerhaft ist, in der folgenden zeile allerdings einen fehler produzieren wird, da der typ database keine recordset-daten verarbeiten kann. üblicherweise verwendet man rs als DAO.recordset oder ADODB.recordset, und db as DAO.database oder ADODB.database. db wird dann (zumindest bei DAO) die CurrentDb übergeben. s'Amstel Das stimmt natürlich, Amstelchen. Solche Fehler passieren, wenn man einen solchen Codeschnipsel aus eigenen Codes erzeugt und diese verkürzt um ein flaches Beispiel zu haben. :upps :upps :upps Also: Korrekt ist (und gemeint war) dim rs as DAO.recordset Reinhold BTW: Die Verwendung von CurrentDb anstelle einer Variablen vom Typ Database ist aus Performancegründen u.U. fragwürdig. (siehe "Access 2000 programmieren", Albrecht/Nicol, Addison-Wesley, ISBN 3-8273-1547-6)
26. April 200718 j ok, ich werde es heute nachmittag gleich mal anwenden und gucken obs läuft! aber vielen dank schon mal im voraus!!! :)
26. April 200718 j Wunderbar, es klappt! danke! eure hinweise werde ich versuchen zu berücksichtigen:)
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.