Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Jonny am Februar 11, 2011, 13:32:29

Titel: Acc 2000 Autoexec läuft nicht unter Runtime
Beitrag von: Jonny am Februar 11, 2011, 13:32:29
Hallo,

ich habe eine DB die über ein Sprachenkennzeichen gesteuert wird.
Läuf unter Acc 2000 und Acc 2007 hervorragend.

Jetzt aber das Problem:
Wird die DB über die Runtime Acc 2000 gestartet wird scheinbar das Sprachenkennzeichen nicht berücksichtigt.

AusführenCode  SetSpracheID (1)

ist die erste Zeile bei der Autoexec.

Es gibt ein Modul für die Sprache:

Option Compare Database
Option Explicit

Public Const cValidationText As Integer = 4
Public Const cStatusText As Integer = 3
Public Const cToolTipText As Integer = 2
Public Const cCaption As Integer = 1

Dim GlbSpracheID As Long

Function GetSpracheID() As Long
    GetSpracheID = GlbSpracheID
End Function

Function SetSpracheID(SpID As Long)
'
' Spracheinstellung setzen.
' 1 = Deutsch
' 2 = Englisch
' 3 = Niederländisch
    GlbSpracheID = SpID
    GblSprachID = SpID
End Function

Function GetBeschriftung(CtrlName As String, Art As Integer) As String
'
' Ermittelt die Beschriftung zu einem Steuerelement
'
Dim vVar As Variant
    '
    ' prüfen, ob ein Controlname angegeben ist
    '
    If Trim$(CtrlName) = "" Then
        MsgBox "Kein Controlname angegeben", "GetBeschriftung"
        Exit Function
    End If
    '
    ' Auswahl der Beschriftungsart
    '
   
    Select Case Art
    Case cToolTipText:
        '
        ' Tool-Tip-Text aus Tabelle "Beschriftungen" lesen
        '
        'vVar = DLookup("[ToolTipText]", "Beschriftungen", _
        '               "[Steuerelementname]='" & CtrlName & "' AND " & _
        '               "[SpracheID]=" & Str$(GlbSpracheID))
    Case cCaption:
        '
        ' Beschriftung aus Tabelle "Beschriftungen" lesen
        '
        vVar = DLookup("[Beschriftung]", "Beschriftungen", _
                       "[Steuerelementname]='" & CtrlName & "' AND " & _
                       "[SpracheID]=" & Str$(GlbSpracheID))
    Case cStatusText:
        '
        ' Statuszeilentext aus Tabelle "Beschriftungen" lesen
        '
        'vVar = DLookup("[Statuszeilentext]", "Beschriftungen", _
        '               "[Steuerelementname]='" & CtrlName & "' AND " & _
        '               "[SpracheID]=" & Str$(GlbSpracheID))
    Case cValidationText:
        '
        ' Gültigkeitmeldung aus Tabelle "Beschriftungen" lesen
        '
        'vVar = DLookup("[Gueltigkeitsmeldung]", "Beschriftungen", _
        '               "[Steuerelementname]='" & CtrlName & "' AND " & _
        '               "[SpracheID]=" & Str$(GlbSpracheID))
    End Select
    GLMeineSprache = Str$(GlbSpracheID)
    '
    ' prüfen, ob eine Beschriftung gefunden wurde
    '
    If IsNull(vVar) Then
        GetBeschriftung = ""
        '
        ' Den Namen des Steuerelementes in die Tabelle Beschriftung eintragen,
        ' damit man weiß was noch zu ergänzen ist.
        '
        CurrentDb.Execute "INSERT INTO Beschriftungen (SpracheID, Steuerelementname) " & _
                          "VALUES(1,'" & CtrlName & "');"
       
    Else
        GetBeschriftung = vVar
    End If
   
End Function

Sub SetFormBeschriftung(AktFrm As Form)
'
' Alle Beschriftungen für ein Formular entsprechend
' der Spracheinstellung setzen.
'
Dim AktCtrl As Control

    '
    ' Formulartitel (Überschrift)
    '
    AktFrm.Caption = GetBeschriftung(AktFrm.Name, cCaption)
    '
    ' Alle Steuerelemente des Formulares abklappern
    '
    For Each AktCtrl In AktFrm.Controls
        '
        '
        If AktCtrl.ControlType = acLabel Or _
           AktCtrl.ControlType = acCommandButton Then
            AktCtrl.Caption = GetBeschriftung(AktCtrl.Name, cCaption)
        End If
    Next AktCtrl

End Sub
Titel: Re: Acc 2000 Autoexec läuft nicht unter Runtime
Beitrag von: database am Februar 12, 2011, 11:56:04
Hallo,

wird SetSpracheID überhaupt angesprungen ? (Haltepunkt gesetzt)
oder wird dieser Befehl bereits ignoriert?

Wenn sie angesprungen wird, was passiert wenn du mit F8 schrittweise ausführst?

Titel: Re: Acc 2000 Autoexec läuft nicht unter Runtime
Beitrag von: Jonny am Februar 12, 2011, 12:14:20
Hallo Peter,

danke für Deine Antwort.

kann ich in einer Runtime überhaupt mit Haltepunkte arbeiten?

Wie gesagt unter "normal Acc" läuft es sowohl bei Acc 2000, Acc 2003 und Acc 2007.

Hier habe ich das ganze mit den Debugger laufen lassen und alle Werte sind wie gewünscht.

Nur die Runtime will nicht.
Es gibt da aber noch die Besonderheit das mit einer Replikation gearbeitet wird.

Gruß

Johann
Titel: Re: Acc 2000 Autoexec läuft nicht unter Runtime
Beitrag von: database am Februar 12, 2011, 13:42:31
Hallo,

kennst du noch irgendeine Möglichkeit, dir das Leben noch schwerer zu machen?  :D ;D :D

Oh Mann,  mal sehen, ich bin am Suchen, vielleicht find' ich doch noch was um dir zu helfen...   ;)