Hallo Leute,
ich hab einen Bericht in MS Office Access 2003 erstellt der auf eine Temporäre Tabelle zugreifen soll. Die Tabelle wird mit SQL und VBA beim Öffnen des Berichts erstellt. Leider kann ich sie beim Schließen nicht mehr löschen. Kann mir jemand helfen? :o)
Grüße Max
So sieht´s aus:
Private Sub Report_Open(Cancel As Integer)
Dim SQL As String
Dim SensorID As String
Dim FeldName As Variant 'Array Input
Dim FeldWert As Variant 'Array Output
Dim Datum As Date
Dim Ereignis As String
Dim Ort As String
Dim Ergebnis As String
SensorID = InputBox("Bitte geben Sie die Sensor-ID ein: ", "Lebenslauf eines Sensors")
If SensorID = "" Then
Cancel = True
Exit Sub
Else
'erzeugt temporäre Tabelle
SQL = "CREATE TABLE Max_TEMP (Datum date, Ereignis char(50), Ort char(50), Ergebnis char(50));"
DoCmd.RunSQL SQL
End If
Reports![Lebenslauf eines Sensors].RecordSource = "Max_TEMP" 'Zuweisung der Datenherkunft des Reports
...
End sub
Private Sub Report_Close()
Dim SQL As String
SQL = "DROP TABLE Max_TEMP"
DoCmd.RunSQL SQL
End Sub
Das Script liefert den Laufzeitfehler '3211':
Das Datenbankmodul konnte die Tabelle 'Max_TEMP' nicht sperren,
da sie bereits von einem anderen Benutzer oder Vorgang bearbeitet wird.
"Mir ist klar, dass der Benutzer der Bericht (Datenquelle) ist. Hab ich ja auch vorher zugewiesen. Die Frage ist wie kann ich die Daten quelle beim Schließen auf NULL setzen?"
Folgendes hatte ich bereits probiert:
Private Sub Report_Close()
Dim SQL As String
Reports![Lebenslauf eines Sensors].RecordSource = ""
SQL = "DROP TABLE Max_TEMP"
DoCmd.RunSQL SQL
End Sub
|