Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Aktion auslösen mit markiertem Datensatz in Unterformular

Begonnen von smily68, März 23, 2011, 11:26:52

⏪ vorheriges - nächstes ⏩

smily68

Hallo

Ich habe zwei Fragen:
1. Wie kann ich in einem Unterformular (Datenblatt Ansicht) mit einem Doppelklick eine Aktion auslösen die diesen Datensatz betrifft?
    Im Unterformular wird pro Datensatz Daten einer Rechnung angezeigt; Rechnungsdatum, RechnungsNr, Kunde. Nun möchte ich über eine Abfrage die
    archivierte Rechnung (Bericht) anzeigen.

2. Wie kann ich mit einer Schaltfläche in einem Formular eine Aktion für einen markierten Datensatz in einem Unterformular auslösen?
    Es geht hier um das gleiche wie bei der Frage 1.

Vielen Dank für eure Tipps

Gruss Daniel

Hondo

Hallo,
wenn du jedes beliebige Feld abfangen möchtest, und dein ID-Feld z.B. "ID" heißt, dann solltest du für jedes Feld folgendes schreiben:
D.H. das ID-Feld musst du im Datenblatt haben.
Private Sub Feldname_Click()
    call IrgendeineFunction(Me!ID)
End Sub

Andreas

smily68

Ich habe nun folgendes gemacht:

bei der RechNr im Unterformular habe ich beim doppelklick folgendes hinterlegt:

Private Sub AuftrPos_RechNr_DblClick(Cancel As Integer)
    Dim Abfrage1
   
    Abfrage2 = "A_LiefAbrArchivAnzeige"
       
    Call DatenSatzSelekt(Me!AuftrPos_RechNr)
   
    DoCmd.OpenQuery Abfrage1
       
End Sub

Ich habe ein Modul Fokus eröffnet und darin folgende Funktion erstellt:

Public Function DatenSatzSelekt(RechNr)
   
    DatenSatzSelekt = RechNr
       
End Function

In der Abfrage habe ich auf dem Feld AuftrPos_RechNr das Kriterium " DatenSatzSelekt («RechNr») " hinterlegt, dass ich über den Ausdruckgenerator aus dem Verzeichnis Funktionen genommen habe.

Er springt mir nun in den Debugg Modus

Mir ist nicht klar wie ich das Resultat der Funktion nun als Kriterium auf die Abfrage bringe.

Gruss Daniel

DF6GL

Hallo,

warum machst Du das so kompliziert?



Private Sub AuftrPos_RechNr_DblClick(Cancel As Integer)
Docmd.Openreport "rptRechnung",acpreview,,"[Rechnr] = '" & Me!AuftrPos_RechNr & "'"   ' falls [Rechnr] vom Datentyp Text ist. Bei Datentyp Long Hochkommata weglassen
End Sub



Der Bericht hat als Datenherkunft eine Tabelle oder Abfrage, die die Rechnungsdaten (woher auch immer ) ohne weiteres Kriterium liefert.


smily68

Hallo

Ich habe nun versucht diesen Script umzusetzten, doch ich komme mit den Hochkommas nicht ganz klar. Das Feld ist eine Zahl Long Integer. Ich habe folgende zwei Varianten ausprobiert:

1. Private Sub AuftrPos_RechNr_DblClick(Cancel As Integer)
    Dim Report
   
    Report = "B_LiefAbrArchiv"
       
    DoCmd.OpenReport Report, acViewReport, , [AuftrPos_RechNr] = "&Me!AuftrPos_RechNr&"
           
End Sub


DF6GL

Hallo,


und die zweite Variante ?


so sollte es heißen:


Private Sub AuftrPos_RechNr_DblClick(Cancel As Integer)
DoCmd.OpenReport "B_LiefAbrArchiv", acViewPreview, , "[AuftrPos_RechNr] = " & Me!AuftrPos_RechNr
End Sub

smily68

sorry bin ausversehen auf die senden Taste gekommen

2. Private Sub AuftrPos_RechNr_DblClick(Cancel As Integer)
   Dim Report
   
   Report = "B_LiefAbrArchiv"
       
   DoCmd.OpenReport Report, acViewReport, , [AuftrPos_RechNr] = Me!AuftrPos_RechNr
End Sub

Bei der ersten Variante kommen keine Datensätze und bei der zweiten Variante alle Datensätze die in der Abfrage vorhanden sind. Was mache ich falsch. Auf dem Formular habe das Feld AuftrPos_RechNr gezogen. Die Bezeichnung sowie das Steuerelement haben genau diesen Namen.

Weiter habe ich eine Frage. Ich habe das ganz genau gleiche Berichte mit zwei unterschiedlichen Abfragen dahinter, die Feldbezeichnung sind aber genau die gleichen. Kann ich den Abfragenamen beim Aufrufen des Berichtes mitgeben? Geht dies mit dem folgenden Befehl:

DoCmd.OpenReport "Sales Report", acViewNormal, "AbfrageName"

Gruss Daniel

smily68

Danke es hat funktioniert. Kannst du mir auch eine Antwort für meine zweite Frage geben?

Gruss Daniel

DF6GL

#8
Hallo,

das ginge etwa so:


DoCmd.OpenReport Report, acViewReport, , "[AuftrPos_RechNr] ="  &  Me!AuftrPos_RechNr , , "AbfrageName"

und

Sub Report_Open(Cancel as Integer)
If not Isnull(Me.Openargs) Then Me.Recordsource=Me.Openargs
End Sub

smily68

Es funktioniert alles einwandfrei. Doch bleibt die eine Frage noch offen die ich am Anfang gestellt habe.

2. Wie kann ich mit einer Schaltfläche in einem Formular eine Aktion für einen markierten Datensatz in einem Unterformular auslösen?
    Es geht hier um das gleiche wie bei der Frage 1.

Ich möchte im Unterformular einen Datensatzt markieren und durch eine Schaltfläche im Formular den Bericht gefiltert nach dem markierten Datensatz starten.

Gruss Daniel

DF6GL

Hallo,


Im HF:

Sub btnDrucken_Click()
DoCmd.OpenReport Report, acViewReport, , "[AuftrPos_RechNr] = " & Me!UFO_Steuerelementname!AuftrPos_RechNr
End Sub