Hallo,
ich steure aus meine Access Anwendung Excel-Zugriffe.
Aus der Vollversion gibt es keine Probleme.
Bei der Runtime 2016 kommen unerklärliche Meldungen bzw. Aktionen werden nicht ausgeführt.
So wird ein Blatt nicht kopiert und eingefügt. Fehlermeldung kommt auch nicht sondern es wird einfach nicht gemacht, Formeln werden nicht als Formeln eingefügt sondern einfach als Text.
Festgestellt haben wir das es ein Update gab. Nachdem wir die Runtime deinstalliert und neu installiert haben lief es dann wieder. Jetzt, nach ca. zwei Monate, gibt es wieder Probleme.
Hat jemand eine Idee, eventuell eine andere Runtime?
Gruß Johann
Zitat von: Jonny am Oktober 13, 2020, 14:38:52Fehlermeldung kommt auch nicht sondern es wird einfach nicht gemacht
Das dürfte an dem Code liegen den du hier nicht zeigst.
Eine Runtime verlangt sauberes Programmieren und vor allem ein sauberes Fehlerhandling.
Ohne deinen Code kann man nichts dazu sagen.
Danke für deine Antwort. Hier der Code:
Dim Db As DAO.Database
Dim Proj As DAO.Recordset
Set Db = CurrentDb
Dim Pfad As String, PfadDatei As String, SqlSel As String, Zeile As Long, SqlUpd As String, Änder As Integer, Mappe As String, Termi As Integer, Texte As Integer
Dim Gruppe As Long, TermVorhanden As Integer, I As Integer, SpalteBu As String, SpaltenZeichen As String, SpaltenNr As Integer
Dim ADatum As Date, AnfDatum As Date, TageMinus As Integer, ZwProjekt As String, Gruppe1 As Integer
Dim Datei As String, ZwMon As String, ZwJahr As String, Zeile2 As Long, ZwExcelSpalte As String, ZwExcelZeile As String, ExAdress As String
Dim DatumJahrAnfang As Date, Rück As Integer, Dateibenutzer As String
' zur Ermittlung der Splatennummer bei der Tabelle Projektzeitachse
DatumJahrAnfang = "01.01.2020"
ZwMon = Format(DLookup("AKw", "Parameter", "ID = 1"), "00")
ZwJahr = Format(DLookup("AJahr", "Parameter", "ID = 1"), "0000")
Datei = DLookup("PfadMeilensteine", "Parameter", "ID = 1")
Datei = Datei & DLookup("DateiMeilensteine", "Parameter", "ID = 1") & ZwMon & ZwJahr & ".xlsx"
Änder = Nz(DCount("ID", "Meilensteinerfassung", "Allgemein = True"), 0)
Termi = Nz(DCount("ID", "ProjektTermine", "Änderung = True"), 0)
Pfad = DLookup("PfadProjektplanung", "Parameter", "ID = 1")
Pfad = Pfad & DLookup("DateiProjektplanung", "Parameter", "ID = 1")
ZwMon = Format(DLookup("AKw", "Parameter", "ID = 1"), "00")
ZwJahr = Format(DLookup("AJahr", "Parameter", "ID = 1"), "0000")
Pfad = Pfad & ZwMon & ZwJahr & ".xlsx"
If Änder = 0 And Termi = 0 Then
MsgBox ("Keine Übertragung Bewegungsdaten notwendig")
Exit Sub
End If
Dim xlSheet As Object 'Excel.Worksheet
Dim objcell As Object
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If xlApp Is Nothing Then
Set xlApp = CreateObject("Excel.Application")
End If
Warten:
If IsFileOpen(Datei) Then
Dateibenutzer = xlApp.UserName
Rück = MsgBox("Datei: " & Datei & " ist geöffnet nochmal versuchen?", vbYesNo + vbQuestion)
If Rück = vbYes Then
GoTo Warten
Else
MsgBox ("Übertragung abgebrochen")
Exit Sub
End If
End If
Warten2:
If IsFileOpen(Pfad) Then
Dateibenutzer = xlApp.UserName
Rück = MsgBox("Datei: " & Pfad & " ist geöffnet nochmal versuchen?", vbYesNo + vbQuestion)
If Rück = vbYes Then
GoTo Warten2
Else
MsgBox ("Übertragung abgebrochen")
Exit Sub
End If
End If
'On Error GoTo Fehler
xlApp.Visible = True ' Testphase
' *** Wenn keine Termine gebucht werden müssen beenden
If Termi = 0 Then
Set xlBook = Nothing
xlBook.Save ' Testphase
xlBook.Close
'xlApp.Application.Quit ' Testphase
Set xlApp = Nothing
MsgBox ("Übergabe erfolgte")
Exit Sub
End If
Set xlBook = xlApp.Workbooks.Open(Datei)
SqlSel = "SELECT ProjektTermine.ID, ProjektTermine.ProjektID, ProjektTermine.Gruppe1, ProjektTermine.MsNr, ProjektTermine.Phase, ProjektTermine.Plandatum, ProjektTermine.Relevant, ProjektTermine.Istdatum, ProjektTermine.ExcelAdrL1P, ProjektTermine.ExcelAdrL1I, ProjektTermine.ExcelAdrL2P, ProjektTermine.excelAdrL2I, ProjektTermine.ExcelAdrL1R, ProjektTermine.ExcelAdrL2R, ProjektTermine.Änderung, ProjektTermine.LosNr"
Zitat von: Jonny am Oktober 13, 2020, 18:16:30Set xlBook = Nothing
xlBook.Save (//xlbook.save) ' Testphase
xlBook.Close
Der Code ist unvollständig.
Außerdem schau dir mal die drei Zeilen an.
Das ist doch Copy&Past Code, weil so viel
Unsinn schafft man sonst gar nicht.
Zitat von: Jonny am Oktober 13, 2020, 14:38:52So wird ein Blatt nicht kopiert und eingefügt. Fehlermeldung kommt auch nicht sondern es wird einfach nicht gemacht,
Der zitierte Code hat keinerlei Fehlerbehandlung ausser
On Error Resume Next. - Damit ist keine Fehlermeldung zu erwarten.
An der betreffenden Stelle ist das
On Error Resume Next sinnvoll, aber es sollte unmittelbar nach dem Block durch eine andere Fehlerbehandlung abgelöst werden. Fehlerbehandlung grundsätzlich ist in der Runtime unerlässlich.
Hallo erst einmal Danke für eure Meldungen. Normal habe ich nicht so einen Chaoscode.
Jetzt habe ich über on error und bekommen den Error 1004 bei diesen Code, siehe Kommentar Einzelschritt
If Not IsNull(Proj!Plandatum) Then
SpalteNr = 24
I = 1
While I < 400
If xlSheet.Cells(11, SpalteNr) = Proj!Plandatum Then
xlSheet.Cells(Zeile, SpalteNr).AddComment ' Einzelschritt hier 1004
xlSheet.Cells(Zeile, SpalteNr).Comment.Visible = False
xlSheet.Cells(Zeile, SpalteNr).Comment.Text ("Plan:" & Chr(10) & Proj!LosNr & "/" & Proj!Phase)
xlSheet.Cells(Zeile, SpalteNr) = "P"
If Proj!Gruppe1 > 1 And Proj!Gruppe1 < 6 Then xlSheet.Cells(Zeile + 1, SpalteNr) = Proj!MsNr
Proj!ExcelAdrL1P = "Z" & Zeile & "S" & SpalteNr
If Proj!Relevant = True Then
xlSheet.Cells(Zeile, SpalteNr) = "R"
Proj!exceladrl1r = "Z" & Zeile & "S" & SpalteNr
End If
I = 401
End If
I = I + 1
SpalteNr = SpalteNr + 1
Wend
Proj!ExcelAdrL1P = "Z" & Zeile & "S" & SpalteNr
End If
Vielen Dank schon jetzt
Hallo hat sich erledigt, waren Kommentare da und nochmal geht nicht.