Hallo!
Ich hab da eine Frage zur Code Verbesserung
Ich hatte das so geschrieben und wollte den Code Verbessern und hab es in einen With und Case Block gesetzt funktioniert alles
Ich wollte nur wissen ob das True hier richtig ist in der Case Anweisung
Case Is <> Null And Not True
Gruß Frank
Alter Code
Dim strDocName As String
strDocName = "sfm_Ansprechpartner_Eingeben"
If Me.OpenArgs = True Then
Me(strDocName).SetFocus
DoCmd.GoToRecord , , acNewRec
End If
If Not IsNull(Me.OpenArgs) And Not Me.OpenArgs = True Then
Me(strDocName).Form.Filter = Me.OpenArgs
Me(strDocName).Form.Filter = True
End If
Neuer Code
With Me(strDocName)
Select Case Me.OpenArgs
Case True
.SetFocus
.GoToRecord , , acNewRec
Case Is <> Null And Not True
.Form.Filter = Me.OpenArgs
.Form.Filter = True
End Select
Hallo,
was steht dann in den Openargs und wo und wie werden diese gefüllt ? Wenn da nur True oder False drin steht, kann Dein Filter nicht funktionieren.
Es wäre auch vorteilhaft, den Code komplett (mit Kopf und Fuß) zu zeigen als nur den Auszug.
Und was ist das Ziel des Ganzen ?
Hallo!
Da Formular das auf geht ist ein Einzelformular
Klick Auf Button zur eingabe eines neuen Datensatzes
Private Sub cmd_Ansprechpartner_Neu_Click()
Dim stDocName As String
Dim strFilter As String
If fncPruefen Then
stDocName = "frm_Ansprechpartner"
strFilter = "Veranstalter_ID = " & Me!txt_Veranstalter_ID
DoCmd.OpenForm stDocName, acNormal, , strFilter, , acDialog, True
End If
End Sub
Doppelklick im Listenfeld um den Datensatz zu finden den ich haben will
Private Sub lst_Ansprechpartner_DblClick(Cancel As Integer)
Dim stDocName As String
Dim strFilter As String
Dim strCriteria As String
If Not Me!lst_Ansprechpartner.ListCount = 0 Then
stDocName = "frm_Ansprechpartner"
strFilter = "Veranstalter_ID = " & Me!txt_Veranstalter_ID
strCriteria = "Ansprechpartner_ID = " & Me!lst_Ansprechpartner.Column(0)
DoCmd.OpenForm stDocName, acNormal, , strFilter, , acDialog, strCriteria
End If
End Sub
Das ist dann die auswertung in Formular das sich öffnet
Private Sub Form_Open(Cancel As Integer)
Dim strDocName As String
bolExit_Allow = False
strDocName = "sfm_Ansprechpartner_Eingeben"
With Me(strDocName)
Select Case Me.OpenArgs
Case True
.SetFocus
.GoToRecord , , acNewRec
Case Is <> Null And Not True
.Form.Filter = Me.OpenArgs
.Form.Filter = True
End Select
End With
End Sub
Funktionieren tut alles
Gruß Frank
Hallo,
ich halte das alles weitgehend für überflüssig.
Kannst Du mal erklären, was Du da vorhast ?
Hi,
ohne es ausprobiert zu haben würde ich eher folgende Variante wählen:Case Is Not Null And <> True
Allerdings, eine Optimierung kann ich darin auch nicht sehen. ;-)
Hallo!
ich hab das mal in ein kutzes Beispiel gepackt
in der Tabelle Ansprechpartner habe ich X Fremdschlüssel Veranstalter,Lieferant und und und
weil alles hat irgendwo ja einen anderen verantwortlichen und ich benütze dafür nur eine Tabelle
Lediglich die Datenquelle des Formulars muss ich dann beim aufruf noch Ändern und die verknüpfung fürs Unterformulars zum Hauptvormular oder ich mach 10 Hauptformulare
Danke MaggieMay und MzKlMu
Gruß Frank
P.S. was mich kurtz irritiert ist das .GoToRecord , , acNewRec in der haupt datenbank klappt aber im beispiel nicht
Hallo,
Dein Beispiel ist etwas eigenartig und eher verwirrend als hilfreich.
Wieso stehen in den Projekten Nachnamen und Vornamen ?
Warum nimmst Du zur Anzeige der Ansprechpartner nicht einfach ein Unterformular verknüpft über die Schlüsselfelder ?
Und wo sind X Fremdschlüssel?
Warum nennst Du ein Formular Sub... wenn es kein Sub (Unterformular) ist ?
@Klaus:
Das "sub" ist Unterformular in "frm_Ansprechpartner".
@Frank:
Den Filter schaltet man folgendermaßen ein:
.Form.Filter[b][color=blue]On[/color][/b] = TruePS:
Zitatdas .GoToRecord , , acNewRec in der haupt datenbank klappt aber im beispiel nicht
Bei mir klappt das.
Hallo!
Danke für die mühe euch beiden
@Klaus:
es ging ja nur um die 3 Subs es wär jetzt sinnlos gewesen in das Beispiel x Formulare und Tabellen zu machen ich hab da nur ein anderes Beispiel schnell umgebaut
im original siehst wie auf dem Bild aus
Das form Veranstalter stellt dann immer dar was auch immer man braucht Lieferant ect.
ich hab 2 leut die kennen sich da nicht so aus mit der Handhabung und damit die optisch sehen was sie da machen setz ich ein wenig auf vielleicht unkonventionelles Design
@MaggieMay
Danke vor lauter Arbeit mache ich immer wieder so Leichtsinnsfehler
Gruß Frank