Thema Datum  Von Nutzer Rating
Antwort
Rot Hilfe - Fehler im Code
16.04.2014 14:55:56 Sandra Thiel
NotSolved

Ansicht des Beitrags:
Von:
Sandra Thiel
Datum:
16.04.2014 14:55:56
Views:
1293
Rating: Antwort:
  Ja
Thema:
Hilfe - Fehler im Code

Hallo ihr freundlichen Helfer,

ich arbeite beruflich mit einer Datenbank (Access),die na ja, etwas veraltet ist und teilweise nicht mehr funktioniert. In der Datenbank gibt es eine "Schaltfläche" mit der sich eine Excel-Datei (mit Markos, also .xlsm) öffnen soll.

In VBA sieht das folgender Maßen aus:

Private Sub Steuerelement_Kostenplan_Click()

    Dim objXL As Object
    Dim DB As Database
    Dim Rst As Recordset
    Dim strSQL, strSave As String

On Error GoTo Err_Kostenplan_Click
    
    Set DB = CurrentDb()
    strSQL = "SELECT Parameter.Wert FROM Parameter " & _
        "WHERE (((Parameter.Bezeichnung) = 'Ordner_Kostenpläne')) " & _
        "WITH OWNERACCESS OPTION;"
        
    Set Rst = DB.OpenRecordset(strSQL, dbOpenDynaset)
        
    Set objXL = CreateObject("Excel.Application")
    
    With objXL.Application
        On Error Resume Next
        .Workbooks.Open Rst.Fields("Wert") & "\" & [Projektnr] & [Phase] & ".xlsm"
        If Err.Number = 1004 Then
           If MsgBox("Der Kostenplan '" & Rst.Fields("Wert") & "\" & [Projektnr] & [Phase] & ".xlsm" & _
            "' konnte nicht gefunden werden. Soll ein neuer Kostenplan angelegt werden?", 36) = 6 Then
                On Error GoTo Err_Kostenplan_Click
                strSave = Rst.Fields("Wert") & "\" & [Projektnr] & [Phase] & ".xlsm"
                strSQL = "SELECT Parameter.Wert FROM Parameter " & _
                    "WHERE (((Parameter.Bezeichnung) = 'Muster_Kostenpläne')) " & _
                    "WITH OWNERACCESS OPTION;"
                Set Rst = DB.OpenRecordset(strSQL, dbOpenDynaset)
                With objXL.Application
                    On Error GoTo Muster_fehlt
                    .Workbooks.Open Rst.Fields("Wert")
                    On Error Resume Next
                    .activeworkbook.saveas strSave
                    .Visible = True
                    objXL.UserControl = True
                    On Error GoTo Err_Kostenplan_Click
                End With
            Else: GoTo Exit_Kostenplan_Click
            End If
        End If
        .Visible = True
        objXL.UserControl = True
    End With

Exit_Kostenplan_Click:
    Set objXL = Nothing
    Exit Sub

Muster_fehlt:
    Dummy = MsgBox("Die Mustertabelle '" & Rst.Fields("Wert") & "' konnte nicht gefunden werden!", 16)
    Resume Exit_Kostenplan_Click
    
Err_Kostenplan_Click:
    MsgBox Err.Description
    Resume Exit_Kostenplan_Click
    
End Sub

 

Ich habe es insoweit geändert, dass es auf die .xlsm-Dateien zugreift. Allerdings geht das "Warnfenster" mit dem Text, dass kein Kostenplan gefunden wurde, nur auf bzw. ich sehe es nur, wenn ich über den Task-Manager gehe. Die Musterdatei der Kostenpläne findet er auch nicht, weil sich die Dateiendung auch bei diesem in .xlsm geändert hat.

Er greift auch leider nur auf die Kostenpläne, die schon angelegt sind, zurück, die im Ordner "Kostenpläne" sind. Da das aber so viele sind, haben wir die in Unterordner verschoben (z. B. 1000 - 1099) und auf diese greift er bei seiner Suche leider nicht zurück.

Kann mir jemand von euch helfen? Ich würde mich sehr freuen.

Liebe Grüße
Sandra


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Hilfe - Fehler im Code
16.04.2014 14:55:56 Sandra Thiel
NotSolved