Hallo zusammen,
ich habe 2 Formular.
Das erste ist Hauptformular (Rechnung), zweite ist aus einer Abfrage (Ubersicht) in dem die gefilterte daten angezeigt werden.
Hauptformular (Rechnung): z.B.
Datensatz1:
Rechnungsnummer: 2022001
WIN-Nr: ABC1234567890
Rechnungsstatus: Storniert
Datensatz2:
Rechnungsnummer: 2022003
WIN-Nr: ABC12345676890
Rechnungsstatus: Gültig
...
2.Formular (Ubersicht): z.B. (aus Abfrage) (gefiltert nach Win-Nr.)
Rechnungsnummer | Win-Nr: | Rechnungsstatus
2022001 | ABC1234567890 | Storniert
2022003 | ABC1234567890 | Gültig
Code aus zweiten Formular für Doppelklick:
Private Sub RechNr_DblClick(Cancel As Integer)
On Error GoTo Err
Dim WinNr As String
WinNr = Me.AutoWIN
DoCmd.Close
If IstFormularGeoeffnet("Rechnung") = True Then
Forms!Rechnung.SetFocus
Call Forms("Rechnung").Suchen_Click
Else
DoCmd.OpenForm ("Rechnung"), acNormal
Call Forms("Rechnung").Suchen_Click
End If
Exit_cmd:
Exit Sub
Err:
MsgBox Err.Description
Resume Exit_cmd
End Sub
und weitergeleiteten Code aus dem Hauptformular (Rechnung) sieht so aus:
Public Sub Suchen_Click()
On Error GoTo Err
'Nach RechNr Suche
If Not IsNull(Me.SuchText) Then
With Me.Recordset
.FindFirst "RechNr=" & Me.SuchText
'If Me.AllowEdits Then
'Me.AllowEdits = False
'End If
If Me.Recordset.NoMatch Then
MsgBox "Rechnungsnummer existiert nicht, bitte überprüfen!", vbOKOnly
Me.SuchText.SetFocus
'Me.AllowEdits = True
End If
End With
End If
'Nach WIN Suche
If Not IsNull(Me.SuchWIN) Then
With Me.Recordset
.FindFirst "AutoWIN= '" & Me.SuchWIN & "'"
'If Me.AllowEdits Then
'Me.AllowEdits = False
'End If
If Me.Recordset.NoMatch Then
MsgBox "WIN-Nummer existiert nicht, bitte überprüfen!"
Me.SuchWIN.SetFocus
Me.AllowEdits = True
End If
End With
End If
'Ausgang
Exit_cmd:
Exit Sub
'Fehlermeldung
Err:
MsgBox Err.Description
MsgBox "Eingabe überprüfen!", vbOKOnly
Resume Exit_cmd
End Sub
Problem: im Hauptformular wird immer nur erste gefundene Datensatz angezeigt (findFirst) in unserem Fall die Datensätze von der (stornierten)Rechnung 2022001 angezeigt aber ich möchte eigentlich die Datensätze von der Rechnung 2022003 sehen.
wie können wir dieses Problem lösen?
Vielen Dank im Voraus.
Hallo,
etwas "unüblich", dieser Aufbau und der Code.
Wenn Du eine bestimme Rechnung finden willst, muss eben nach der Rechnungsnummer, bzw. deren RechnID gesucht werden....
Hallo,Franz
@
ZitatWenn Du eine bestimme Rechnung finden willst, muss eben nach der Rechnungsnummer, bzw. deren RechnID gesucht werden....
Es gibt wohl zu einer WINNr mehrere Rechnungen. Da ist der Filter auf diese Nr schon richtig.
@zorlayan Wozu der ganze Code nötig ist erschliesst sich mir nicht, mal ganz davon abgesehen, dass man keine
Ereignisprozeduren ohne Ereignis auslöst.
Alles was du brauchst ist das Öffnen von Formular2 aus Formular1 heraus mit dem entsprechenden
Filter
Private Sub RechNr_DblClick(Cancel As Integer)
Dim WinNr As String
WinNr = Me.AutoWIN
DoCmd.Close 'ob das Sinn macht?
DoCmd.OpenForm _
FormName:="Uebersicht", _
WhereCondition:="AutoWIN = '" & WinNr & "'"
End SubWeitere Parameter der Methode musst du in der OH nachlesen und ggfls. ergänzen.
Analog funzt das so natürlich auch mit der Rechnungsnr, und du könntest hier auch
vorher noch prüfen ob der Filter überhaupt DS zurückgibt; - DCount() wäre die Funktion
meiner Wahl.
gruss ekkehard
Hallo,
Zitataber ich möchte eigentlich die Datensätze von der Rechnung 2022003 sehen.
was soll man weiter dazu sagen?
Vielleicht stellt er mal seinen Tabellenaufbau vor (wie immer einen Screenshot des Beziehungsfensters) und erklärt genau, was er finden/anzeigen will.
Code und Formulare sind dafür erst mal unerheblich.