Unterformularauswahl mit zwei ComboBoxen
Hulpi
Gesendet: 27.06.13 16:55
Betreff: RE: Unterformularauswahl mit zwei ComboBoxen


Hallo Karl,

 


Wenn es sich um ein Hauptformular mit Unterformular handelt, solltest du die OpenForm-Zeile weglassen können. Warum du einige andere Zeilen drin hast, ist auch nicht ganz klar. Falls du SendKeys verwendest, um das Ereignis "Nach Aktualisierung" des Kombis auszulösen, dann geht das sicherer mit der Verwendung der Text-Eigenschaft als Trick. Ersetze mal testweise deinen Code durch die folgenden Zeilen. Fall das nicht funktioniert, solltest du deinen Code etwas im einzelnen erläutern und auch, was du mit "Auswahlprozedur der ComboBox" meinst und welche Ereignisse du noch verwendest:

Forms!frm_haupt!ComboJahrAuswahl = Me!Jahr
Forms!frm_haupt!Combo1 = Me.Name
Forms!frm_haupt!Combo2.SetFocus
Forms!frm_haupt!Combo2.Text = Me!Nummer
Me.Requery


es hat leider noch nicht richtig funktioniert. Ich erkläre mal ausführlicher:

Bevor du dir das durchliest, wenn du eine Idee hast, wie ich einen Unterformulareintrag per Doppelklick in meine Hauptmaske bekomme, sodass die zugehörigen Unterformulare aktuell geladen werden und die Prozedur uns diesen Fehler erspart, wäre ich sehr dankbar für einen Vorschlag - ich ärger mich mit diesem Code jetzt schon seit gestern rum. Ich weiß leider keine andere Möglichkeit - also Sendekeys ist nicht unbedingt nötig.








Hier meine Ausführungen:


In der Tat kann ich den Anfangsteil weglassen, allerdings läuft das Laden des ausgewählten Datensatzes dann nicht automatisch, sondern braucht immer noch eine weitere Bestätigung. Der per Doppelklick ausgewählte Datensatz wird auch tatsächlich ins Hauptfenster geladen. Allerdings soll man danach das Formular wie vorher benutzen können - das geht nicht. Wählt man in der Folge in einer der beiden ComBoBoxen einen Datensatz aus, erhält man:

Laufzeitfehler 2427: Sie haben einen Ausdruck ohne Wert eingegeben.

Beim Debuggen gelange ich an eine Stelle im Code, die normalerweise beim Ereignis "nach Aktualisierung" von der ersten ComboBox durchgeführt wird.
Die normale Prozedur ist :

Private Sub Combo1_AfterUpdate()
Suche_Satz Nz(Combo1, "", ComboJahrAuswahl, "Combo1"
Me.AllowEdits = gblnIsUpdatetable
End Sub

Nur damit klar ist wo das folgende normalerweise herkommt.
Ich werde wie gesagt beim Debuggen auf folgendes verwiesen. Die angekreidete Stelle markiere ich mit ###:


Private Sub Suche_Satz(Nummer1 As String, Y As Integer, Feld As String)
Dim sCriteria As String
Dim I As Long
Dim isLocked As Boolean
Dim rs As New ADODB.Recordset
Dim blnBerechtigt As Boolean

If Not IsNull(Controls(Feld)) Then 'And Controls(Feld) & "" <> "" Then

If mstrCurrentNummer1<> "P00000" And Not mblnactionLockedButShow Then
CurrentProject.Connection.Execute "UPDATE tbl_LockedStatus SET isLocked=0 WHERE " & _
"Jahr=" & mintJahr1 & " AND Nummer='" & mstrCurrentNummer1 & "'"
End If

sCriteria = "Nummer='" & Nummer1 & "'" & _
" AND Jahr=" & CInt(ComboJahrAuswahl)
'Datensatz kann nur aufgerufen werden, wenn dieser nicht von anderem User gesperrt ist
If Nummer1 <> "P00000" Then
isLocked = IsactionLocked(CLng(ComboJahrAuswahl), Nummer1, sCriteria)
If isLocked And Not mblnactionLockedButShow Then Exit Sub
End If

I = DCount("[Nummer]", "tbl_contact", sCriteria)
mblnNoData = I = 0
Me.AllowAdditions = I > 0 And gblnIsUpdatetable
If isLocked And mblnactionLockedButShow Then
Me.AllowEdits = False
gblnIsUpdatetable = False
Set_Edit_Settings
cmd_SwitchGlobalEdit.enabled = False
Else
Me.AllowEdits = True
cmd_SwitchGlobalEdit.enabled = True
End If
Me.RecordSource = "SELECT * FROM tbl_contact WHERE " & sCriteria
### mstrCurrentNummer1 = Nummer
mintJahr1 = Jahr

ComboJahrAuswahl.visible = True
Combo1.visible = True
Combo2.visible = True
If Feld = "Combo2" Then
Combo1 = Combo2
Else
Combo2 = Combo1
End If

Me!frm_fo_endlos_np.Form.AllowEdits = False
Me!frm_fo_endlos_np.Form.AllowAdditions = False
Me!frm_fo_endlos.Form.AllowEdits = False
Me!frm_fo_endlos.Form.AllowAdditions = False


'...................
'weiterer Code, prüft aber anderes - denke ich

End If
End Sub



Viele Grüße,

Hulpi

Top of the page Bottom of the page