von Prinzessin87 » 19. Sep 2019, 09:51
Vielen Dank es funktioniert!
Jedoch hab ich noch das Problem das beim Bericht die Menüleiste gebraucht wird bezüglich drucken?
Kann man hier nur das Drucken aktivieren oder muss die ganze Leiste her?
Habe vorhin selbst bei meinen anderen aus kommentierten Codes experimentiert, haben nämlich auch funktioniert aber wie du sagst er beim 2. öffnen - warum ist das so?
Habe jetzt noch weitere Fragen:
1. Was genau macht dieser Code?
- Code: Alles auswählen
Private m_DaoDB As DAO.Database
Public Property Get CurrentDbC() As DAO.Database
If (m_DaoDB Is Nothing) Then
Set m_DaoDB = CurrentDb
End If
Set CurrentDbC = m_DaoDB
End Property
2. Mit diesen Code hat es jetzt ebenfalls funktioniert, der hat mir so gut gefallen da er so schön aus kommentiert ist (Menüleiste bleibt bei diesen Code komplett stehen)
- Code: Alles auswählen
Function StartEigenschaften()
If IsACCDE Then
MsgBox ("Bin eine ACCDE Datei")
Dim intX As Integer
Const DB_Text As Long = 10
Const DB_Boolean As Long = 1
'//Anwendungstitel
AendernEigenschaft "AppTitle", DB_Text, "Text"
'// MS Access-Titelleiste aktualisieren
Application.RefreshTitleBar
'//Datenbankfenster ausblenden
AendernEigenschaft "StartupShowDBWindow", DB_Boolean, False
'//Menü- und Symbolleistenänderungen zulassen
'//AendernEigenschaft "AllowToolbarChanges", DB_Boolean, False
'//Codeansicht nach Fehler zulassen
'//AendernEigenschaft "AllowBreakIntoCode", DB_Boolean, False
'//Frage-Symbolleiste ausblenden
Application.CommandBars.DisableAskAQuestionDropdown = True
'//Fenster in Taskleiste nicht anzeigen
Application.SetOption ("ShowWindowsInTaskbar"), False
Call DB_Sperren
Else
MsgBox ("bin die Vollversion")
Call DB_oeffnen
End If
End Function
Function AendernEigenschaft(strName As String, varTyp As Variant, varWert As Variant) As Integer
Dim DBs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set DBs = CurrentDb
On Error GoTo AendernEigenschaft_Fehler
DBs.Properties(strName) = varWert
AendernEigenschaft = True
AendernEigenschaft_Ende:
Exit Function
AendernEigenschaft_Fehler:
If Err = conPropNotFoundError Then
Set prp = DBs.CreateProperty(strName, varTyp, varWert)
DBs.Properties.Append prp
Resume
Else
AendernEigenschaft = False
Resume AendernEigenschaft_Ende
End If
End Function
Public Sub DB_oeffnen()
On Error Resume Next
'//Menü- und Symbolleistenänderungen zulassen
AendernEigenschaft "AllowToolbarChanges", DB_Boolean, True
'//Codeansicht nach Fehler zulassen
AendernEigenschaft "AllowBreakIntoCode", dbBoolean, True
'//Spezialtasten (ALT+F1 (F11), STRG+F11, STRG+UNTBR und STRG+G) zulassen
AendernEigenschaft "AllowSpecialKeys", dbBoolean, True
'//Shifttaste zulassen
AendernEigenschaft "AllowBypassKey", dbBoolean, True
End Sub
Public Sub DB_Sperren()
On Error Resume Next
'//Menü- und Symbolleistenänderungen sperren
AendernEigenschaft "AllowToolbarChanges", DB_Boolean, False
'//Codeansicht nach Fehler sperren
AendernEigenschaft "AllowBreakIntoCode", dbBoolean, False
'//Spezialtasten (ALT+F1 (F11), STRG+F11, STRG+UNTBR und STRG+G) sperren
AendernEigenschaft "AllowSpecialKeys", dbBoolean, False
'//Shifttaste sperren
AendernEigenschaft "AllowBypassKey", dbBoolean, False
End Sub
'Funktion, um zu prüfen ob accde: Abfrage in Formular frmStart (Form_Open)
Public Function IsACCDE() As Boolean
On Error GoTo Err_IsACCDE
Dim StrProp As String
'
On Error Resume Next
StrProp = CurrentDb.Properties("MDE")
IsACCDE = (Err.Number = 0) And (StrProp = "T") 'true bei ACCDE
Exit_IsACCDE:
On Error Resume Next
' Resume Next
Exit Function
Err_IsACCDE:
MsgBox Err.Description
Resume Exit_IsACCDE
End Function
Was ich nicht verstehe ist warum wird einmal "DB_Boolean" geschrieben (dafür wurde ja oben eine Variable festgelegt)
'//Menü- und Symbolleistenänderungen zulassen
AendernEigenschaft "AllowToolbarChanges", DB_Boolean, True
und einmal "dbBoolean" (da greift die Variable nicht, oder)
'//Codeansicht nach Fehler zulassen
AendernEigenschaft "AllowBreakIntoCode", dbBoolean, True
Vielleicht könntest du mir das trotzdem noch erklären auch wenn dein Code übersichtlicher ist und ich die Kommentare einfach dort einfügen werde

Vielen Dank es funktioniert!
Jedoch hab ich noch das Problem das beim Bericht die Menüleiste gebraucht wird bezüglich drucken?
Kann man hier nur das Drucken aktivieren oder muss die ganze Leiste her?
Habe vorhin selbst bei meinen anderen aus kommentierten Codes experimentiert, haben nämlich auch funktioniert aber wie du sagst er beim 2. öffnen - warum ist das so?
Habe jetzt noch weitere Fragen:
1. Was genau macht dieser Code?
[code]Private m_DaoDB As DAO.Database
Public Property Get CurrentDbC() As DAO.Database
If (m_DaoDB Is Nothing) Then
Set m_DaoDB = CurrentDb
End If
Set CurrentDbC = m_DaoDB
End Property[/code]
2. Mit diesen Code hat es jetzt ebenfalls funktioniert, der hat mir so gut gefallen da er so schön aus kommentiert ist (Menüleiste bleibt bei diesen Code komplett stehen)
[code]Function StartEigenschaften()
If IsACCDE Then
MsgBox ("Bin eine ACCDE Datei")
Dim intX As Integer
Const DB_Text As Long = 10
Const DB_Boolean As Long = 1
'//Anwendungstitel
AendernEigenschaft "AppTitle", DB_Text, "Text"
'// MS Access-Titelleiste aktualisieren
Application.RefreshTitleBar
'//Datenbankfenster ausblenden
AendernEigenschaft "StartupShowDBWindow", DB_Boolean, False
'//Menü- und Symbolleistenänderungen zulassen
'//AendernEigenschaft "AllowToolbarChanges", DB_Boolean, False
'//Codeansicht nach Fehler zulassen
'//AendernEigenschaft "AllowBreakIntoCode", DB_Boolean, False
'//Frage-Symbolleiste ausblenden
Application.CommandBars.DisableAskAQuestionDropdown = True
'//Fenster in Taskleiste nicht anzeigen
Application.SetOption ("ShowWindowsInTaskbar"), False
Call DB_Sperren
Else
MsgBox ("bin die Vollversion")
Call DB_oeffnen
End If
End Function
Function AendernEigenschaft(strName As String, varTyp As Variant, varWert As Variant) As Integer
Dim DBs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set DBs = CurrentDb
On Error GoTo AendernEigenschaft_Fehler
DBs.Properties(strName) = varWert
AendernEigenschaft = True
AendernEigenschaft_Ende:
Exit Function
AendernEigenschaft_Fehler:
If Err = conPropNotFoundError Then
Set prp = DBs.CreateProperty(strName, varTyp, varWert)
DBs.Properties.Append prp
Resume
Else
AendernEigenschaft = False
Resume AendernEigenschaft_Ende
End If
End Function
Public Sub DB_oeffnen()
On Error Resume Next
'//Menü- und Symbolleistenänderungen zulassen
AendernEigenschaft "AllowToolbarChanges", DB_Boolean, True
'//Codeansicht nach Fehler zulassen
AendernEigenschaft "AllowBreakIntoCode", dbBoolean, True
'//Spezialtasten (ALT+F1 (F11), STRG+F11, STRG+UNTBR und STRG+G) zulassen
AendernEigenschaft "AllowSpecialKeys", dbBoolean, True
'//Shifttaste zulassen
AendernEigenschaft "AllowBypassKey", dbBoolean, True
End Sub
Public Sub DB_Sperren()
On Error Resume Next
'//Menü- und Symbolleistenänderungen sperren
AendernEigenschaft "AllowToolbarChanges", DB_Boolean, False
'//Codeansicht nach Fehler sperren
AendernEigenschaft "AllowBreakIntoCode", dbBoolean, False
'//Spezialtasten (ALT+F1 (F11), STRG+F11, STRG+UNTBR und STRG+G) sperren
AendernEigenschaft "AllowSpecialKeys", dbBoolean, False
'//Shifttaste sperren
AendernEigenschaft "AllowBypassKey", dbBoolean, False
End Sub
'Funktion, um zu prüfen ob accde: Abfrage in Formular frmStart (Form_Open)
Public Function IsACCDE() As Boolean
On Error GoTo Err_IsACCDE
Dim StrProp As String
'
On Error Resume Next
StrProp = CurrentDb.Properties("MDE")
IsACCDE = (Err.Number = 0) And (StrProp = "T") 'true bei ACCDE
Exit_IsACCDE:
On Error Resume Next
' Resume Next
Exit Function
Err_IsACCDE:
MsgBox Err.Description
Resume Exit_IsACCDE
End Function[/code]
Was ich nicht verstehe ist warum wird einmal "DB_Boolean" geschrieben (dafür wurde ja oben eine Variable festgelegt)
[quote] '//Menü- und Symbolleistenänderungen zulassen
AendernEigenschaft "AllowToolbarChanges", DB_Boolean, True
[/quote]und einmal "dbBoolean" (da greift die Variable nicht, oder)
[quote] '//Codeansicht nach Fehler zulassen
AendernEigenschaft "AllowBreakIntoCode", dbBoolean, True[/quote]
Vielleicht könntest du mir das trotzdem noch erklären auch wenn dein Code übersichtlicher ist und ich die Kommentare einfach dort einfügen werde :)