Hallo Leute,
heute Abend mal wieder eine Stellen, an denen ich nicht weiterkomme und Freund Google auch nicht helfen kann.
Ich möchte ein Formular öffnen und dann automatisch das Registerkartenlement auf die Zweite Registerkarte einstellen. Wie geht das?
Hier rufe ich das gewünschte/letzte Formular auf
Call Lastformopener(, OldNetwork)
und hier der zugehörige Sub:
Public Sub Lastformopener(Optional Customer As Long, Optional Network As Long)
' Öffnen des zuletzt geöffneten Formulars
If LastWindow = "" Then
' Defaultfall Startformular
DoCmd.OpenForm "frmSteuerung"
ElseIf Customer <> 0 Then
DoCmd.OpenForm LastWindow, , , "MitgliedsNr=" & Customer
ElseIf Network <> 0 Then
DoCmd.OpenForm LastWindow, , , "VerbundNr=" & Network
Else
DoCmd.OpenForm LastWindow
End If
End Sub
Immer ist im Formular das Register "Personendaten" auf Default geöffnet, da es das erste ist. Wie aktiviere ich beim öffnen nun
das zweite Register "Adresse?
Vielen Dank für eure Unterstützung.
Hallo tragger
schreibe im Ereignis beim Öffnen des Formulars
Private Sub Form_Open(Cancel As Integer)
Me!Seite2.SetFocus
End Sub
ersetze im Code Seite2 durch Deinen Registernamen.
Gruß
JG.
Das ist der allgemeine Weg. Richtig. Aber in meinem Fall reicht mir das nicht.
Denn nach der Lösung würde immer diese Registerkarte aufgerufen. Das soll so nicht sein, sondern in Abhängigkeit vom letzten Vorgang. Dazu übergebe ich ein OpenArgs. Das kommt auch an. Leider passiert durch den If-Block nichts mehr und das Register Adresse wird nicht mehr geöffnet:
Private Sub Form_Open(Cancel As Integer)
Dim register As String
If Not IsNull(Me.OpenArgs) Then
register = Me.OpenArgs
Me!Adresse.SetFocus
End If
End Sub
Wie kann ich das nun lösen? Und wie kann ich das lösen in Abhängigkeit vom Inhalt des String register?
Hallo,
na, prüf halt die Variable "Register" oder gleich den Inhalt von Openargs:
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
If Me.OpenArgs ="DeinText" Then Me!Adresse.SetFocus
End If
End Sub
Habe ich. Openargs enthält den Inhalt "Adresse" und er geht auch in das Then.
Doch das Ergebnis ist weiter falsch. Es funktioniert nur ohne die If isnull....-Phase. >:(
Hallo,
Wie heißt die Registerseite, bzw. welche "Positionsnummer" hat die und wie lautet der Registername?
Die Registerkarte hat den Namen Adresse und den Seitenindex 1. Sie ist also das Register an Position 2, da ja bei 0 die Zählung beginnt...
Es funktioniert ja auch in folgendem Code aber ohne die Abhängigkeit >:(:
Private Sub Form_Open(Cancel As Integer)
Me!Adresse.SetFocus
End Sub
Ich glaube, ich habe es. Das Register im Gesamten hat noch einen spezielleren Namen. Somit kann ich das scheinbar über den Index lösen. Geht das mit dem Namen definitiv nicht??
Hier die "Zwischenlösung"
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
MsgBox Me.OpenArgs
If Me.OpenArgs = "Adresse" Then Me!RegisterStr5 = 1
End If
End Sub