Dynamische Änderung des ersten Datensatzes einer Abfrage per VBA
Hi!
Habe gerade Schwierigkeiten, eine Abfrage von mir zur Anzeige als Pivot Chart vorzubereiten. Durch meine Abfrage habe ich bereits die Daten für eine Wochenperiode herausgefiltert, muss allerdings noch den Aufsatzpunkt auf den Wochenanfang beziehen und nicht auf den vorherigen Datenpunkt, wofür ich den ersten Datensatz ändern muss, Leider bekomme ich einen Laufzeitfehler 3027, Aktulaisierennicht möglich, Datenbank oder Objekt schreibgeschützt. Könnt Ihr mir helfen?
Abfrageergebnis von Q_PivotRowNum:
Nun versuche ich, das StartDate auf den 18.01.2010 und die StartTime auf 00:00 zu setzen ud entsprechend die PhaseLength auf 2:50h...
Sub Q_PivotRowNum_change()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Set db = Application.CurrentDb
strSQL = "SELECT * FROM Q_PivotRowNum"
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
rst.MoveFirst
If rst.NoMatch = True Then
MsgBox "K nicht gefunden"
Else
rst.Edit
rst.Fields("StartDate") = "18.01.2010"
rst.Fields("StartTime") = "00:00"
rst.Fields("PhaseLength") = "02:50"
rst.Update
End If
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Warum bekomme ich hier den Laufzeitfehler 3027 und wie kann ich die Abfrage oder den Code ändern, um den ersten Datensatz zu ändern (und dann die Abfrage als PivotChart ausgeben zu können)?
Für Eure Hilfe wäre ich sehr dankbar!
Schönen Gruß,
stevens
Habe gerade Schwierigkeiten, eine Abfrage von mir zur Anzeige als Pivot Chart vorzubereiten. Durch meine Abfrage habe ich bereits die Daten für eine Wochenperiode herausgefiltert, muss allerdings noch den Aufsatzpunkt auf den Wochenanfang beziehen und nicht auf den vorherigen Datenpunkt, wofür ich den ersten Datensatz ändern muss, Leider bekomme ich einen Laufzeitfehler 3027, Aktulaisierennicht möglich, Datenbank oder Objekt schreibgeschützt. Könnt Ihr mir helfen?
Abfrageergebnis von Q_PivotRowNum:
RowNum | StartDate | StartTime | EndDate | EndTime | PhaseLength | LyoTasks |
1 | 17.01.2010 | 23:00 | 18.01.2010 | 02:50 | 3:50 | Waiting |
2 | 18.01.2010 | 02:50 | 18.01.2010 | 06:00 | 3:10 | Phase1 |
3 | ... |
Nun versuche ich, das StartDate auf den 18.01.2010 und die StartTime auf 00:00 zu setzen ud entsprechend die PhaseLength auf 2:50h...
Sub Q_PivotRowNum_change()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Set db = Application.CurrentDb
strSQL = "SELECT * FROM Q_PivotRowNum"
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
rst.MoveFirst
If rst.NoMatch = True Then
MsgBox "K nicht gefunden"
Else
rst.Edit
rst.Fields("StartDate") = "18.01.2010"
rst.Fields("StartTime") = "00:00"
rst.Fields("PhaseLength") = "02:50"
rst.Update
End If
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Warum bekomme ich hier den Laufzeitfehler 3027 und wie kann ich die Abfrage oder den Code ändern, um den ersten Datensatz zu ändern (und dann die Abfrage als PivotChart ausgeben zu können)?
Für Eure Hilfe wäre ich sehr dankbar!
Schönen Gruß,
stevens
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138992
Url: https://administrator.de/contentid/138992
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
was Laufzeitfehler 3027 genau aussagt weis ich jetzt zwar nicht (bissl text wäre noch schön gewesen *g*), aber ich nehme an, das dein Recordset nicht "Updateable" ist.
Um das zu umgehen, musst Du
1) den zu ändernden Datensatz eindeutig identifizieren (Primary Key)
und
2) dann den Satz in der Original TABELLE ändern.
Abgesehn davon würde ich aus
ein
machen.
lg,
Slainte
was Laufzeitfehler 3027 genau aussagt weis ich jetzt zwar nicht (bissl text wäre noch schön gewesen *g*), aber ich nehme an, das dein Recordset nicht "Updateable" ist.
Um das zu umgehen, musst Du
1) den zu ändernden Datensatz eindeutig identifizieren (Primary Key)
und
2) dann den Satz in der Original TABELLE ändern.
Abgesehn davon würde ich aus
SELECT * FROM Q_PivotRowNum
SELECT TOP 1 * FROM Q_PivotRowNum ORDER BY ... DESC/ASC
lg,
Slainte
Hallo stevensqwe!
Also, nach meinem Verständnis kann eine Abfrage-Tabelle die bereits anhand bestimmter Kriterien erstellt wurde, nicht überschrieben werden. Von daher, würde ich die Abfrage in eine neue normale Tabelle kopieren und diese Tabelle entsprechend bearbeiten.
Gruß Dieter
Also, nach meinem Verständnis kann eine Abfrage-Tabelle die bereits anhand bestimmter Kriterien erstellt wurde, nicht überschrieben werden. Von daher, würde ich die Abfrage in eine neue normale Tabelle kopieren und diese Tabelle entsprechend bearbeiten.
Gruß Dieter