Hallo zusammen,
ich führe in einer Datenbank aufgrund von Benutzereingaben in einem Formular den SQL-Code von Auswahlabfragen aus, deren Ergebnisse ich in zur Laufzeit mit SELECT INTO in benutzerpersonalisierte, temporäre Tabellen schreibe und dem Benutzer anzeige. Der kann die die Daten dann exportieren, kopieren oder einfach nur anschauen. Nach Schließen der Form werden die Tabellen gelöscht.
Das läuft seit Jahren einwandfrei. Im neuen Release der DB, das ich grade erstelle, tritt aber jetzt der Laufzeitfehler 3078 auf - am Code der Funktion habe ich nichts geändert -, dass die gerade erzeugte Tabelle nicht gefunden werde. Wenn ich im Debugger dann aber die F8 oder F5-Taste betätige, läuft der Code dann ohne Mucken durch. Ich habe dann nach dem SELECT INTO-Teil ein TableDefs.Refresh eingebaut - ohne Nutzen. Kennt jemand das Problem oder noch besser: eine Lösung? Nachstehend der Code, an der kursiv dargestellten Zeile bleibt er dann hängen:
Dim sttmpTable, stSQL As String Dim db As DAO.Database Set db = DBEngine(0)(0) sttmpTable = "tmp_tbl_" & GetUserName & "_" & Hour(Time) & Minute(Time) & Second(Time) Select Case Me.ctrlAktiva.Tag Case "IFRS" If tableExists("tblErgebnispositionen_IFRS_mit_Sachkonten") Then db.Execute "SELECT t1.*,t3.Zugeordnete_Position As [Geht in]," & _"t2.[HGB-WinKons-Pos 1] As HGB_BilGuV_Pos1,t2.BEWGP As Kontobereich INTO " & sttmpTable & _" FROM (tblErgebnispositionen_IFRS_mit_Sachkonten As t1 " & _"INNER JOIN Sachkonten As t2 ON t1.Kontonummer = t2.SAKNR) " & _"INNER JOIN tblIFRS_Ergebnispositionsplan As t3 ON t1.Ergebnisposition = t3.PosNr " & _"WHERE t1.Positionsart <> 'Alternative Kontonummer' And t1.Ergebnisposition = '" & Me.cboIsPosition & "'" db.Execute "INSERT INTO " & sttmpTable & _" SELECT t1.*,t3.Zugeordnete_Position As [Geht in], " & _"t2.[HGB-WinKons-Pos 1] As HGB_BilGuV_Pos1,t2.BEWGP As Kontobereich " & _" FROM (tblErgebnispositionen_IFRS_mit_Sachkonten As t1 " & _"INNER JOIN Sachkonten As t2 ON t1.Kontonummer = t2.[KtoNr IASD]) " & _"INNER JOIN tblIFRS_Ergebnispositionsplan As t3 ON t1.Ergebnisposition = t3.PosNr " & _"WHERE t1.Positionsart <> 'Alternative Kontonummer' And t1.Ergebnisposition = '" & Me.cboIsPosition & "' AND t1.Kontonummer LIKE '91' & '*'"If DCount("*", sttmpTable) > 0 Then DoCmd.OpenTable sttmpTable Else MsgBox "Keine Sachkonten für " & Me.cboIsPosition & " gefunden!" End If Me.cmdClearFind_IsPosition.Enabled = True Else MsgBox "Fehler: Datenquelle nicht vorhanden!" End If
Bin gespannt!
Gruß
Michael