Hallo! Ich bin neu hier :D
Vor Jahren programmierte ich eine große Anwendung in Access97, die bis heute läuft. Nun stellte ich diese auf Access2013 um. Soweit so gut. Mich stört nun der Navigationsbereich. Ich habe diesen über die Optionen ausgeblendet. Allerdings blendet er sich jedes mal wieder ein, wenn ich folgende Funktion aufrufe, die ich einmal geschrieben habe, um über den Dateimanager Dateien aufzurufen und später zu speichern:
+++
Public Function DateiOpen(Titel, Pfad, ZielFeld As Control, PfadOderDateiOderBeides As Byte, FilterA1, FilterA2, Optional FilterB1, Optional FilterB2, Optional FilterC1, Optional FilterC2, Optional FilterD1, Optional FilterD2, Optional FilterE1, Optional FilterE2)
On Error Resume Next
Dim DateiName As New DateiOeffnen
DateiName.DialogTitle = Titel
DateiName.InitDir = Pfad
DateiName.Filter1Text = FilterA1
DateiName.Filter1Suffix = FilterA2
DateiName.Filter2Text = FilterB1
DateiName.Filter2Suffix = FilterB2
DateiName.Filter3Text = FilterC1
DateiName.Filter3Suffix = FilterC2
DateiName.Filter4Text = FilterD1
DateiName.Filter4Suffix = FilterD2
DateiName.Filter5Text = FilterE1
DateiName.Filter5Suffix = FilterE2
DateiName.ShowOpen
Ergebnis = DateiName.FileName
ZielFeld = PfadOderDatei(Ergebnis, PfadOderDateiOderBeides, "\")
End Function
+++
Der zusätzliche Code:
+++
DoCmd.NavigateTo "acNavigationCategoryObjectType", "acNavigationGroupTables"
DoCmd.SelectObject acTable, vbNullString, True
DoCmd.RunCommand acCmdWindowHide
+++
funktioniert zwar! Aber er sperrt dann das Formular und blockiert auch den Dateimanager.
Weiss jemand Rat?
Michael Pilipp
Hallo,
der Code enthält noch etliche unbekannte Funktionen, die solltest du dir mal genauer anschauen - wenn du sie nicht zeigen möchtest.
Entschuldigung, war keine Absicht. Ich finde aber nur eine noch:
+++
Public Function PfadOderDatei(PfadUndDatei, DateiPfadBeides As Byte, Suchzeichen As String)
On Error Resume Next
GesamtString = PfadUndDatei
Gesamtlaenge = Len(GesamtString)
Laenge = 1
For I = 1 To Gesamtlaenge
Zaehler = InStr(1 + Laenge, GesamtString, Suchzeichen)
If Zaehler = 0 Then
Exit For
Else
Laenge = InStr(1 + Laenge, GesamtString, Suchzeichen)
End If
Next I
Select Case DateiPfadBeides
Case 1
PfadOderDatei = Trim(Mid(GesamtString, Laenge + 1, Gesamtlaenge))
Case 2
PfadOderDatei = Trim(left(GesamtString, Laenge))
Case 3
PfadOderDatei = Trim(GesamtString)
End Select
End Function
+++
Was steckt denn hinter "DateiOeffnen"?
Du könntest den Code auch mal im Unterbrechungsmodus testen um festtzustellen, an welcher Stelle der Navigationsbereich eingeblendet wird.
Ich habe mir nun den gesamten Code angesehen. Letztendlich liegt es wohl daran, dass ich eine temporäre Datenbank anlege, eine Tabelle erstelle und diese kurz einbinde und dann wieder lösche. Ich nehme nun an, dass dann automatisch der Navigationsbereich eingeblendet wird. Die Lösung liegt nun für mich darin, den Navigationsbereich per Code wieder auszublenden.
Es kommt darauf an, wie du das machst, es gibt immer verschiedene Wege. Wenn du den Code zeigst, bspw. wo die Tabelle eingebunden wird, lässt sich das möglicherweise ändern.
Hast du mal gezielt nach dem Einsatz von "SelectObject" im gesamten Code gesucht?